🛝Toolio
关于 联系方式

🧮 在线计算器——免费,支持历史记录和键盘输入

Toolio的计算器可以执行加、减、乘、除和百分比运算,并且可以保存您最近50个计算结果的滚动历史记录在浏览器中——它不涉及科学计算,没有括号,也没有记忆键(M+、M-、MR),因为这些按钮在界面上并不存在。在后台运行着一个真正的运算符优先级解析器,但界面上的按钮每次只向解析器传递一个运算,因此按下2 + 3 x 4 = 的结果会像普通的桌面计算器一样显示为20,而不是严格遵循代数运算顺序得到的14。每个结果在显示前都会四舍五入到12位有效数字,这就是为什么0.1 + 0.2会显示干净的0.3,而不是JavaScript原始的0.30000000000000004。

Toolio的计算器是一个基于浏览器的四则运算计算器——加、减、乘、除和百分比,具有50条记录的历史记录和完整的键盘支持,完全离线运行。

 
0
历史记录
尚无历史记录

隐私优先设计. 此工具完全在您的浏览器中运行 — 您输入的任何内容都不会上传或存储,并且可以离线使用。

关于

这个计算器能做什么 —— 以及不能做什么

按钮网格提供了AC、退格、%、除、乘、减、加、数字0-9、小数点和等于——这就是全部功能。没有平方根、指数、三角函数、括号和记忆寄存器;如果你需要这些功能,这不是适合你的工具。键盘与按钮一一对应:数字键、+、-、*、/、Enter或=用于等于、退格、Escape用于清除、%用于百分比,所有这些都连接到一个监听器,当你在页面上的其他输入字段中输入时,它不会干扰你。运算符优先级的工作方式与许多人从‘计算器’中预期的不同。在内部,工具构建一个表达式字符串,并使用正确的Shunting Yard算法进行评估,该算法确实优先处理乘法和除法,然后再处理加法和减法——但按钮界面每次只向该评估器传递一个运算符和两个数字。具体来说:按下2、+、3、x、4、=,以下是逐步发生的情况——按下+会将2存储为待处理的左值;按下3设置下一个数字;按下x会强制立即计算待处理的2 + 3(因为当结果仍待处理时,新运算符到达),得到5,这成为新的左值;按下4设置下一个数字;按下=会计算5 x 4并显示20。如果计算器在整个输入链中应用完整的运算顺序,会显示14(2 + 12)而不是20。这种链式行为与普通的四则运算计算器(大多数手机的标准模式中内置的那种)一致,而不是科学或表达式计算器,这也是这类工具收到“错误答案”报告的最常见原因。

数学原理

浮点数处理是另一个可见数字和原始计算数字出现偏差的地方。二进制浮点数无法精确表示大多数十进制分数,因此JavaScript将0.1 + 0.2计算为0.30000000000000004,将100 x 1.1计算为110.00000000000001。在任何结果到达显示之前,工具会将每个结果四舍五入到12位有效数字,这会将这两个结果悄悄地转换为人类期望的干净的0.3和110。不过,这种修复有实际的限制:像999999999999999这样的15位整数会因为相同的12位截断而四舍五入为1000000000000000,将一个精确的整数转换为另一个不同的精确整数,仅仅是因为显示四舍五入——这不是浮点数的伪影,而是真正的数值损失。一旦结果的量级达到约1e21,JavaScript自己的数字格式会切换为指数表示法(1e+21),无论12位四舍五入原本会显示什么。

一些较小的防护措施完善了行为:除以零会引发内部错误,并在显示中显示本地化的“错误”消息,而不是Infinity或NaN,清除待处理的操作,以便你可以重新开始;在输入时,原始数字输入被限制为15个字符(退格仍然可以正常地将数字减少到一个0);百分比行为是上下文相关的——在有待处理操作时,按%会计算存储的左值的百分比(200,+,10,%显示20,然后按=会得到220),而单独按%则会将当前显示除以100。

计算历史 —— 最近 50 条,保存在浏览器中

历史记录会将您最近的50次计算存储在浏览器的localStorage中,属于该工具的命名空间;第51次推送会静默地删除最旧的条目。点击历史记录中的任何一行会将该结果和表达式带回显示中,以便您可以继续构建,而清除历史记录会立即删除列表,并通过提示确认已清除。因为是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.30000000000000004,因为二进制浮点数无法精确表示0.1或0.2,但这个计算器在显示前会将每个结果四舍五入到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),无论四舍五入如何。
如果我除以零会怎样?
计算器会明确捕捉到这一点,并显示本地化的‘错误’消息,而不是Infinity或NaN,然后清除待处理的操作,以便你可以立即开始新的计算。
此工具会上传我的数据吗?
不会。所有操作都在您的浏览器中完成,因此您的数据永远不会离开您的设备 — 甚至在页面加载后也可以离线使用。