🛝툴리오
소개 문의

🧮 온라인 계산기 — 무료 · 기록 저장 · 키보드 지원

Toolio의 계산기는 더하기, 빼기, 곱하기, 나누기, 퍼센트 기능을 지원하며, 브라우저에 저장된 최근 50개의 계산 결과를 스크롤하여 볼 수 있는 기능이 있습니다. 이 계산기는 과학적인 기능이나 괄호, 메모리 키(M+, M-, MR)가 없으며, 인터페이스에 해당 버튼이 없습니다. 내부적으로는 연산자 우선순위를 처리하는 파서가 실행되지만, 화면에 있는 버튼은 한 번에 하나의 연산만 입력하게 되어 있습니다. 따라서 2 + 3 x 4 =을 누르면 일반적인 책상 계산기처럼 20이 아닌, 엄격한 대수적 순서에 따라 14가 나오는 것과는 달리 20이 표시됩니다. 모든 결과는 표시하기 전에 12개의 유효 숫자로 반올림되어 있기 때문에 0.1 + 0.2는 JavaScript의 원본 값인 0.30000000000000004가 아닌 깔끔한 0.3이 표시됩니다.

Toolio의 계산기는 브라우저 기반의 사칙연산 계산기로, 덧셈, 뺄셈, 곱셈, 나눗셈, 퍼센트 기능을 제공하며, 50개의 기록을 저장할 수 있는 기능과 키보드 지원 기능을 포함하고 있으며, 완전히 오프라인에서 작동합니다.

 
0
기록
아직 기록이 없어요

설계부터 프라이빗. 이 도구는 전부 브라우저 안에서 실행돼요 — 입력한 내용은 업로드되거나 저장되지 않으며, 오프라인에서도 작동합니다.

소개

이 계산기가 하는 일 — 그리고 하지 않는 일

버튼 배열은 AC, 백스페이스, %, 나누기, 곱하기, 뺄셈, 더하기, 숫자 0-9, 소수점, 등호를 제공합니다. 이는 전체 기능 세트입니다. 제곱근, 지수, 삼각함수, 괄호, 메모리 레지스터는 포함되어 있지 않으며, 필요하다면 이 도구는 적합하지 않습니다. 키보드는 버튼을 하나씩 정확히 반영합니다: 숫자 키, +, -, *, /, Enter 또는 =은 등호, 백스페이스, Escape는 초기화, %는 퍼센트, 모두 하나의 리스너에 연결되어 있으며, 페이지의 다른 입력 필드를 입력할 때는 방해받지 않습니다.

계산 방식(연산자 우선순위·부동소수점)

연산자 우선순위는 많은 사람들이 '계산기'에서 기대하는 것과 다릅니다. 내부적으로는 표현식 문자열을 생성하고, 이는 정확한 쉬잉-야드 알고리즘을 사용하여 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 처리되도록 평가됩니다. 그러나 버튼 인터페이스는 평가기에 한 번에 하나의 연산자와 두 숫자만 전달합니다. 구체적으로: 2, +, 3, x, 4, =을 누르면 다음과 같은 단계로 처리됩니다 — +를 누르면 2가 대기 중인 왼쪽 값으로 저장되고, 3을 누르면 다음 숫자가 설정되며, x를 누르면 대기 중인 2 + 3이 즉시 평가되어 5가 되고, 이는 새로운 왼쪽 값이 됩니다. 4를 누르면 다음 숫자가 설정되고, =을 누르면 5 x 4를 평가하여 20을 표시합니다. 전체 입력된 연쇄에 대해 정확한 연산 순서를 적용하는 계산기는 14(2 + 12)를 표시할 것입니다. 이 연쇄식 행동은 일반적인 사칙연산 계산기(대부분의 스마트폰 표준 모드에 포함된 것)와 일치하며, 과학적 계산기나 표현식 기반 계산기와는 다릅니다. 이는 이와 같은 도구에서 '잘못된 답' 보고서의 가장 흔한 원인입니다.

부동소수점 처리는 표시된 숫자와 실제 계산된 숫자가 다를 수 있는 또 다른 영역입니다. 이진 부동소수점은 대부분의 십진 분수를 정확하게 표현할 수 없기 때문에 JavaScript는 0.1 + 0.2를 0.30000000000000004로 계산하고, 100 x 1.1을 110.00000000000001로 계산합니다. 모든 결과가 표시되기 전에 12개의 유효 숫자로 반올림되어 있기 때문에, 이 두 값은 모두 인간이 기대하는 깔끔한 0.3과 110으로 돌아옵니다. 그러나 이 수정에는 실제 한계가 있습니다: 15자리의 정수인 999999999999999는 동일한 12자리의 반올림 기준으로 1000000000000000으로 반올림되어, 입력한 실제 값이 아닌 다른 정수로 바뀝니다. 이는 부동소수점 오류가 아니라, 표시 반올림으로 인한 실제 값의 손실입니다. 그리고 결과의 크기가 약 1e21에 도달하면 JavaScript의 자체 숫자 형식은 지수 표기법(1e+21)으로 전환되어, 12자리 반올림이 무엇이든 간에 무시됩니다.

작은 몇 가지 보호 장치가 행동을 완성합니다: 0으로 나누면 내부적으로 예외가 발생하고, 표시에는 로컬라이즈된 '에러' 메시지가 표시되며, 무한대나 NaN이 아닌, 예외 처리를 통해 이전 연산이 초기화되어 다시 시작할 수 있도록 합니다. 숫자 입력은 타이핑 중 15자까지 제한되며, 백스페이스는 정상적으로 작동하여 단일 0까지 줄일 수 있습니다. 퍼센트는 맥락에 따라 작동합니다: 대기 중인 연산이 있을 경우, 저장된 왼쪽 값의 퍼센트를 계산합니다(200, +, 10, %는 20을 보여주고, 이후 =을 누르면 220이 됨), 단독으로 누르면 현재 표시를 100으로 나눕니다.

계산 기록 — 최근 50개, 브라우저에 저장

기록은 이 도구의 고유 네임스페이스 아래 브라우저의 localStorage에 최근 50개의 계산을 저장합니다. 51번째 입력은 가장 오래된 항목을 조용히 삭제합니다. 기록 패널의 항목을 클릭하면 해당 결과와 표현식을 다시 표시하여 계속 계산할 수 있습니다. Clear History는 즉시 목록을 지우고, 토스트 메시지로 확인합니다. 이는 localStorage이기 때문에, 이 특정 브라우저와 이 특정 장치에만 연결되어 있으며, 프라이버시/인코그니토 탭, 브라우저, 또는 장치 간에 동기화되지 않습니다.

사용 방법

  1. 키보드나 화면에 있는 숫자 버튼을 눌러 숫자를 입력합니다.
  2. +, -, x, 또는 / (또는 해당 키보드 키)를 눌러 연산을 선택합니다. 두 번째 연산자가 즉시 이전 연산을 평가합니다.
  3. 퍼센트를 사용하여 퍼센트를 계산합니다: 이전 연산이 있을 경우, 저장된 값의 퍼센트를 계산합니다(200, +, 10, %는 20을 보여주고, 이후 =을 누르면 220이 됨). 단독으로 누르면 현재 표시를 100으로 나눕니다.
  4. Enter 또는 =을 눌러 최종 결과를 확인합니다. 결과는 자동으로 기록에 저장되고, 표시하기 전에 12개의 유효 숫자로 반올림됩니다.
  5. 기록 패널의 항목을 클릭하여 해당 결과와 표현식을 다시 불러오고, 계속 계산할 수 있습니다.
  6. Escape 또는 AC를 눌러 모든 내용을 지우거나, Backspace를 눌러 입력한 마지막 숫자를 삭제합니다.

자주 묻는 질문

0.1 + 0.2가 실제로 0.3을 표시하나요, 아니면 일반적인 부동소수점 오류를 보이나요?
0.3이 깔끔하게 표시됩니다. JavaScript는 이진 부동소수점이 0.1 또는 0.2를 정확하게 표현할 수 없기 때문에 원본 합을 0.30000000000000004로 계산하지만, 이 계산기는 표시하기 전에 모든 결과를 12개의 유효 숫자로 반올림하여 이 오류를 일상적인 숫자에 대해 숨깁니다.
2 + 3 x 4 =을 입력하면 14가 나오나요, 아니면 20이 나오나요?
20이 나옵니다. 이전 연산이 여전히 대기 중일 때 연산자를 누르면 해당 대기 중인 단계가 즉시 평가됩니다(2 + 3 = 5 먼저), 다음 연산자는 그 결과에 적용됩니다(5 x 4 = 20). 이는 일반적인 사칙연산 계산기의 표준 행동이며, 과학적 계산기가 입력된 연쇄에 대해 전체 연산 순서를 적용하면 14가 나옵니다.
과학 모드, 괄호, 또는 메모리 키(M+/M-/MR)가 있나요?
아니요. 이 계산기는 사칙연산과 퍼센트, 기록 기능을 제공하며, 삼각함수, 지수, 제곱근, 괄호, 메모리 레지스터는 인터페이스에 포함되어 있지 않습니다. 필요하다면 이 도구는 해당 기능을 제공하지 않습니다.
계산이 어디에 업로드되나요?
아니요. 모든 계산은 브라우저에서 이루어지고, 기록은 브라우저의 localStorage에만 저장됩니다. 아무것도 서버로 전송되지 않으며, 인터넷 연결 없이도 도구가 계속 작동합니다.
매우 큰 숫자나 매우 정밀한 숫자는 어떻게 되나요?
표시하기 전에 결과는 12개의 유효 숫자로 반올림되어, 이는 정확한 큰 정수를 조용히 바꿀 수 있습니다. 예를 들어, 15자리의 정수인 999999999999999는 1000000000000000으로 표시됩니다. 결과의 크기가 약 1e21에 도달하면, 표시는 지수 표기법(예: 1e+21)으로 전환되며, 이 반올림과 관계없이 항상 그렇습니다.
0으로 나누면 어떻게 되나요?
계산기는 이를 명시적으로 감지하고, 무한대나 NaN 대신 로컬라이즈된 '에러' 메시지를 표시한 후, 대기 중인 연산을 초기화하여 즉시 새로운 계산을 시작할 수 있도록 합니다.