수식 평가기
일반 수학 함수로 산술 식 평가 — sqrt·sin·log·pow·min/max·상수 pi·e·tau.
결과
8
구조적으로 안전: 식별자는 허용 목록(sin·cos·tan·sqrt·log·ln·exp·pi·e·tau·min·max·hypot·…)에서 와야 함. 변수·문자열 리터럴·세미콜론 없음.
사용법
- 식을 입력합니다. 연산자·괄호·소수·허용된 이름을 쓸 수 있습니다.
- 결과는 실시간으로 업데이트됩니다. 필요하면 복사해 다른 곳에 붙여넣으세요.
^은 지수입니다(수학처럼, 비트 XOR이 아닙니다). 변수 거듭제곱은pow(x, y)또는x^y로 씁니다.
자세한 설명
펼치기접기
종이에 적는 방식 그대로 쓰는 계산기입니다. (1 + 2) * 3.14, sqrt(2), sin(pi / 4), 2^10 같은 식이 그대로 동작합니다. 연산자는 + - * / % ^를 지원하고, 함수와 상수는 고정된 허용 목록에서 가져옵니다. 삼각함수 계열, sqrt, cbrt, abs, sign, 반올림 계열 함수, log, log2, log10, ln, exp, pow, min, max, hypot, 그리고 pi, e, tau가 있습니다. 목록에 없는 식별자는 계산 전에 거부되므로, 입력창에 적은 것이 페이지나 자바스크립트 런타임에 닿을 수 없습니다.
자바스크립트 자체와 다른 관례가 둘 있는데 알아 둘 만합니다. 여기서 ^는 비트 XOR이 아니라 거듭제곱이고, 수학에서처럼 오른쪽 결합입니다. 그래서 2^3^2는 8^2가 아니라 2^9, 즉 512입니다. 그리고 log는 자연로그입니다. 공학용 계산기의 상용로그 키가 아니라 자바스크립트의 Math.log를 따릅니다. log(100)은 약 4.6이고, 여러분이 원했을 2는 log10(100)입니다. 의도를 어느 쪽으로든 명시적으로 쓸 수 있도록 ln도 동의어로 제공합니다.
모든 계산은 배정도 부동소수점으로 이뤄지며, 이것이 정확도의 천장을 정합니다. 0.1 + 0.2는 여기서도 0.30000000000000004가 나옵니다. 같은 표현 방식을 쓰는 다른 모든 언어와 정확히 똑같습니다. sin(pi)는 0이 아니라 약 1.2 × 10^-16을 돌려줍니다. 사인 함수가 틀려서가 아니라, pi 자체가 π에 가장 가까운 표현 가능한 배정도 수이고, 그 살짝 어긋난 수의 진짜 사인값이 실제로 0이 아니기 때문입니다. 유효숫자 열다섯에서 열여섯 자리를 넘어가는 결과는 잡음이고, 거의 같은 두 큰 수를 빼는 식은 그 한 단계에서 정밀도의 대부분을 잃습니다.
각도는 Math와 마찬가지로 전부 라디안입니다. 도 단위로 계산하려면 입력할 때 pi / 180을 곱하세요. sin(30 * pi / 180)은 기대하던 0.5를 주고, sin(30)은 다른 질문에 대한 완벽하게 유효한 답입니다.
자주 묻는 질문
내부적으로 eval을 사용하나요?
new Function(...) 호출을 사용합니다. 단, 입력의 식별자를 파싱해 허용 목록(sin·sqrt·pi·…)과 맞는지 확인한 뒤에만 호출합니다. document·window·fetch·문자열 리터럴·세미콜론 등은 실행 전에 거부되므로 식이 Math.* 밖에 도달할 방법이 없습니다.
sin 등의 각도 단위는 무엇인가요?
라디안이며 JavaScript Math.sin과 같습니다. 일반 각도는 pi로 씁니다. sin(pi / 2)는 1, cos(pi)는 -1입니다. 도(degree)로 계산하려면 전달하기 전에 pi / 180을 곱하세요.
큰 계산이 정밀도를 잃는 이유는 무엇인가요?
JavaScript 숫자는 IEEE 754 double이라 유효 소수 자리가 약 15자리입니다. 0.1 + 0.2는 0.30000000000000004입니다. 더 높은 정밀도(금융 소수·20! 이상 팩토리얼 등)가 필요하면 임의 정밀도 전용 도구나 라이브러리를 사용하세요.
변수·다행 스크립트는 지원하나요?
의도적으로 지원하지 않습니다. 표면적을 작게 유지하는 것이 안전한 평가의 비결입니다. 프로그래밍 가능한 수학이 필요하면 Jupyter 노트북이나 데스크톱 계산기를 사용하세요.
관련 도구
XPath 테스터
브라우저에서 XML이나 HTML에 XPath 식을 실행해 일치하는 모든 노드를 봅니다. 네임스페이스 접두어와 해석 오류도 함께 보고합니다.
개발
정규식 테스터
자바스크립트 정규식을 실시간으로 테스트하고 매치 강조와 치환 미리보기를 확인하세요.
개발
소인수분해 · GCD · LCM
정수를 소수로 인수분해·모든 약수 나열·두 수의 GCD·LCM 계산. ~10¹²까지 처리.
수학·통계
조합과 순열 계산기 (nCr, nPr)
nCr·nPr을 중복 허용/비허용 모두 계산하고 팩토리얼까지 — 확률, 로또 확률, 조합론을 위한 임의 정밀도 정수.
수학·통계
직각삼각형 계산기
두 변만 입력하면 나머지 한 변, 두 예각, 넓이, 둘레를 피타고라스 정리로 구합니다.
수학·통계
기울기·직선 계산기
두 점으로부터 기울기, 직선의 방정식 y = mx + b, 거리, 중점, 기울기 각도, 그리고 수직·수평 변화량을 구합니다.
수학·통계
과학적 표기법 변환기
어떤 숫자든 과학적·공학적·E 표기법으로 변환합니다. 유효숫자 반올림, 확장 십진수, 자릿수(차수)까지 함께 보여줍니다.
변환