삼각함수, 로그, 팩토리얼, 상수를 지원하는 공학용 계산기입니다. 입력한 식과 결과를 함께 보여주고, 지난 계산을 되짚어 볼 수 있는 기록을 남깁니다.
공학용 계산기가 버튼만 많은 계산기와 다른 이유는 연산자 우선순위입니다. −2^2은 −4입니다. 거듭제곱이 음수 부호보다 먼저 묶이기 때문인데, 의외로 많은 계산기가 4를 내놓습니다. 이 계산기는 식 전체를 먼저 해석한 뒤 계산하므로 우선순위와 단항 마이너스, 중첩 괄호가 종이에 쓴 것과 같게 동작합니다.
삼각함수는 DEG/RAD 스위치에 따라 각도나 라디안으로 읽습니다. 여기서 나오는 오답의 가장 흔한 원인이 이 스위치입니다. 로그도 상용로그와 자연로그를 나눠 두어 어느 쪽인지 짐작할 필요가 없습니다. 계산 기록과 메모리 값은 이 브라우저에 남으므로 한 시간 전에 구한 숫자를 다시 꺼내 쓸 수 있습니다.
답이 틀려 보이지만 틀리지 않은 두 번째 원인은 부동소수점입니다. 이 페이지는 모든 브라우저와 스프레드시트, 대부분의 프로그래밍 언어가 쓰는 IEEE 754 배정밀도로 계산합니다. 그 안에서 0.1 + 0.2 는 0.30000000000000004 입니다. 세 값 중 어느 것도 2진수로 정확히 표현되지 않기 때문입니다. 화면에는 잡음이 보이지 않도록 반올림해 보여 주지만 한계는 실재합니다. 유효 십진 자릿수가 약 15자리이고 그 뒤의 숫자는 정보가 아닙니다. 열여섯 번째 자리에 답이 걸리는 계산이라면 다른 종류의 도구가 필요합니다.
도(degree)와 라디안 전환 스위치는 그만한 값어치가 있습니다. 거의 모든 프로그래밍 언어의 삼각함수는 라디안을 받는 반면, 거의 모든 기하 문제와 도면에 적힌 각도는 도 단위입니다. 이 불일치는 틀렸다는 티가 나지 않는 틀린 답을 만듭니다. sin(30) 은 도 단위에서 0.5 이고 라디안에서는 −0.988 인데, 둘 다 그럴듯해 보이는 숫자입니다. 삼각함수 결과를 믿기 전에 모드를 확인하는 습관이 필요하고, 표시가 메뉴 안이 아니라 눈에 띄는 자리에 있는 이유가 그것입니다.
기록과 메모리는 서버가 아니라 이 브라우저에 남습니다. 그래서 실제로 쓰이는 방식대로 쓸 수 있습니다. 오후에 계산해 둔 값이 그대로 남아 있고, 여러 번에 걸친 계산 사이에 소계를 메모리에 담아 둘 수 있습니다. 저장이 브라우저에 한정되므로 다른 기기로 따라가지는 않고, 사이트 데이터를 지우면 함께 지워집니다. 계산 목록 하나를 유지하자고 로그인을 요구하는 쪽이 대안인 도구라면, 합리적인 맞바꿈입니다.
팩토리얼은 이 계산기의 어떤 기능보다 빨리 배정밀도의 한계에 닿습니다. 170! 은 약 7.26 x 10의 306제곱이고 아직 표현 가능하지만, 171! 은 형식을 완전히 넘어서 무한대로 계산됩니다. 실패가 아니라 IEEE 754가 정한 올바른 답입니다. 그보다 훨씬 앞에서 팩토리얼은 정확한 값이기를 그만둡니다. 22! 를 넘으면 결과가 가수부 53비트에 들어가지 않으므로, 화면의 숫자가 전부 정수처럼 보여도 실제로는 반올림된 근삿값입니다. 큰 값을 정확히 다뤄야 하는 조합론 계산에는 임의 정밀도 연산이 필요하고, 그것은 다른 종류의 도구입니다.
페이지가 한 번 로드된 뒤에는 됩니다. 모든 계산이 브라우저에서 이루어지며 네트워크를 쓰지 않습니다.
대부분의 계산기와 프로그래밍 언어처럼 IEEE 754 배정밀도 부동소수점을 씁니다. 유효숫자 15자리 정도이며 0.1 + 0.2 같은 값에서 흔한 미세 오차가 나타납니다.
팩토리얼은 부동소수점 범위를 금방 넘어섭니다. 대략 170!을 넘으면 결과가 무한대가 됩니다.