과학용 계산기
삼각함수, 로그, 지수, 팩토리얼 등 과학 계산 기능 지원
공학용 계산기란?
공학용 계산기는 기본 사칙연산부터 고급 과학 함수 계산까지 지원하는 강력한 온라인 수학 계산 도구입니다. 삼각함수(sin, cos, tan 및 역함수), 로그 함수(log, ln), 지수 함수, 거듭제곱 연산, 팩토리얼, 절대값 등 풍부한 수학 연산 기능을 제공합니다.
이 계산기는 도(DEG)와 라디안(RAD) 두 가지 모드 전환을 지원하며, 원주율π와 자연상수 e를 내장하고, 메모리 기능(M+, M-, MR, MC)을 제공합니다. 모든 계산은 브라우저에서 로컬로 수행되어 데이터 프라이버시를 보호합니다.
사용 방법
사용 방법
- 계산기 패널의 숫자와 연산자 버튼을 클릭해 수식을 입력하세요.
- sin, cos, log 등 과학 함수 버튼을 클릭해 함수를 삽입하고, 괄호로 연산 우선순위를 지정하세요.
- 등호 버튼을 클릭하거나 Enter를 눌러 결과를 계산하세요. 수식과 결과는 상단에 표시됩니다.
- DEG/RAD 버튼으로 도/라디안 모드를 전환하고, M+/M-/MR/MC로 메모리를 관리하세요.
계산 팁
- 삼각 함수 사용 전 DEG/RAD 모드를 확인하세요. 같은 숫자도 도와 라디안 모드에서 결과가 크게 달라질 수 있습니다.
- 다단계 수식에는 괄호를 사용해 연산 우선순위를 명확히 하세요. 머릿속 그룹핑에 의존하지 마세요.
활용 사례
기술 원리
계산기는 션팅 야드 알고리즘으로 모든 수식을 파싱하여 중위 표기법을 후위 표기 대기열로 변환하며, 연산자 우선순위와 거듭제곱 연산자의 오른쪽 결합성을 올바르게 처리합니다. 괄호는 그룹핑을 강제하고, 단항 마이너스는 피연산자에 통합되며, pi나 e 같은 상수 옆의 암시적 곱셈은 후위 변환 전에 정규화되어 모호한 토큰을 방지합니다. 수치 평가는 전부 IEEE 754 배정밀도로 실행되며, 약 15-17자리의 유효 십진 숫자와 대략 ±1.7976931348623157e308의 크기 범위를 제공합니다. 고전적인 부동소수점 함정은 여전히 적용됩니다: 0.1 + 0.2는 0.30000000000000004로 평가됩니다 — 어느 피연산자도 유한한 이진 표현을 갖지 않기 때문이며, 중간 결과는 거의 같은 값의 긴 뺄셈 체인에서 정밀도를 잃을 수 있습니다. 삼각함수, 로그, 지수, 근 함수는 JavaScript Math 라이브러리에 위임합니다. DEG/RAD 전환은 Math.sin, Math.cos, Math.tan을 호출하기 전에 각도를 pi/180으로 곱하거나 나누며, 역함수는 결과에 대해 변환을 반전합니다. 팩토리얼은 반복 곱을 사용하므로 170!은 배정밀도 상한선인 약 7.257e+306에 근접하고, 171!은 Infinity로 오버플로합니다.
- 션팅 야드 파서: 중위 표기법을 후위 표기법으로 변환, 우선순위를 준수(^ 오른쪽 결합, 단항 마이너스를 피연산자에 통합)
- IEEE 754 배정밀도: 약 15-17자리 유효 숫자, 최대 약 1.79e+308, 고전적 사례 0.1 + 0.2 = 0.30000000000000004
- DEG/RAD 변환: Math.sin/cos/tan 호출 전 각도를 pi/180로 스케일링, 역함수는 결과에 대해 스케일링을 반전
- 팩토리얼 오버플로우 경계: 170!은 약 7.257e+306, 171!은 JavaScript의 숫자 타입에서 Infinity 반환
- 내장 상수: Math.PI(3.141592653589793)와 Math.E(2.718281828459045)는 토큰으로 삽입, 매번 다시 파싱하지 않음
- 초월 함수: Math.log는 자연로그(ln), Math.log10은 상용로그, Math.exp(x)는 e^x 계산, Math.pow는 x^y 처리
- 메모리 레지스터: M+/M-는 단일 숫자 변수에 누적, MR은 이를 리터럴로 입력에 다시 넣음, MC는 0으로 초기화
예시
각도(DEG) vs 라디안(RAD) 삼각함수
모드: DEG
sin(30) = 0.5
cos(60) = 0.5
tan(45) = 1
모드: RAD
sin(pi/4) = 0.70710678
cos(pi) = -1
tan(pi/3) = 1.73205081로그, 지수, e와 pi
log(1000) = 3 (밑이 10인 로그)
ln(e) = 1 (자연로그)
exp(1) = 2.71828183
e^2 = 7.389056
2^10 = 1024
pi * 2 = 6.28318531팩토리얼과 조합
5! = 120
10! = 3628800
170! = 7.257e+306 (IEEE-754 오버플로 직전 최대값)
171! = Infinity
C(52,5) = 52!/(5!*47!) = 2598960 (포커 핸드 수)메모리 키: 누적 합계
1단계: 125.50 입력 후 M+ 누름 -> 메모리 = 125.50
2단계: 89.99 입력 후 M+ 누름 -> 메모리 = 215.49
3단계: 12.00 입력 후 M- 누름 -> 메모리 = 203.49
4단계: MR 누름 -> 화면 표시 = 203.49
용도: 소계를 다시 입력하지 않고 영수증 합산자주 묻는 질문
어떤 함수들을 지원하나요?
표준 사칙연산, 괄호, 제곱근과 n제곱근, 거듭제곱, 로그(log은 상용로그, ln은 자연로그), 지수, 삼각함수(sin/cos/tan과 그 역함수), 쌍곡함수, 팩토리얼, 모듈로, 절댓값, 그리고 상수 π와 e를 지원합니다. 일부 빌드는 통계 도우미(평균, 표준편차)도 포함합니다.
각도는 라디안인가요, 도(°)인가요?
모드 토글이 있고 기본은 도(°)입니다. 도 모드에서 sin(30°) = 0.5, 라디안 모드에서 sin(30) ≈ −0.988입니다. 현재 모드가 화면에 표시되니 삼각 계산 전에 꼭 확인하세요.
왜 0.1 + 0.2가 정확히 0.3이 아닌가요?
JavaScript는 IEEE 754 배정밀도 부동소수점을 씁니다. 0.1과 0.2는 이진수로 정확히 표현되지 않아 0.1 + 0.2 = 0.30000000000000004가 됩니다. 계산기는 결과를 반올림해 표시하지만, 초월함수 계산까지 극단적인 십진 정밀도를 보장하지는 못합니다.
긴 식은 어떻게 평가하나요?
식 전체를 입력하세요. 파서가 연산자 우선순위와 괄호를 따릅니다. 2*3+4^2 대신 2*(3+4)^2처럼 쓰세요. 함수 옆 암묵적 곱셈(예: 2sin(30))은 파서에 따라 동작이 달라질 수 있으니, *를 명시적으로 넣는 것이 항상 안전합니다.
복소수나 기호 대수도 다루나요?
아니요. 이 도구는 수치 공학용 계산기입니다. 복소수, 기호 미분, 방정식 풀이 같은 작업에는 Wolfram Alpha, GeoGebra, 또는 SymPy 같은 CAS를 사용하세요.
계산은 로컬에서 이뤄지나요?
네. 식은 브라우저에서 파싱되고 평가됩니다. 외부로 업로드되는 정보는 없습니다. 기록은(있다면) localStorage에 저장되며 사이트 데이터를 지우면 함께 사라집니다.
공학 함수의 정밀도는 어느 정도인가요?
표준 JavaScript Math 함수는 약 15~17자리의 십진 정밀도를 제공합니다. 공학 작업에는 충분하지만 고정밀 기호 수학에는 부족합니다. 임의 정밀도가 필요하면 decimal.js 같은 라이브러리나 CAS를 쓰세요.