数值舍入计算器

小数舍入
下一个

将小数舍入到指定数位,并避免转换为二进制浮点数时在中点附近产生意外结果。精度为正数时保留小数点后的位数,为0时舍入到整数,为负数时舍入到十位、百位或更高的10次幂。八种明确规则可供选择,包括常用的中点远离零、半偶舍入、向正无穷舍入、向负无穷舍入和截断。

如何舍入小数

  1. 1

    输入精确的小数

    最多输入30位数字,可以带正负号,并可用句点或逗号作为小数分隔符。计算器会直接读取每一位数字,而不会先将数值转换为二进制浮点数。

  2. 2

    选择舍入数位

    输入2表示百分位,0表示整数,-1表示十位,-2表示百位,也可以选择-12至12之间的任意精度。

  3. 3

    选择中点规则

    选择如何处理中点和定向舍入,再复制结果;用于表示所需精度的末尾零会予以保留。

小数位数与舍入位

精度 p 表示舍入为 10^(-p) 的倍数。精度 2 表示百分位,0 表示个位,-3 表示千位。首先保留到指定数位为止的数字,再查看舍弃部分并应用所选规则。例如,将 1234.567 舍入到两位小数时先保留 1234.56;舍弃部分首位是 7,因此按最近值舍入的结果为 1234.57

结果会保留末尾零,因为这些零体现了所需精度。因此,12 舍入到三位小数时显示为 12.000

八种规则的运作方式

规则 2.5 舍入为整数 -2.5 舍入为整数
最近值,中点远离零 3 -3
最近值,中点趋向零 2 -2
最近值,中点取偶数 2 -2
最近值,中点取奇数 3 -3
向正无穷舍入 3 -2
向负无穷舍入 2 -3
向零舍入 2 -2
远离零舍入 3 -3

只有恰好处于中点时才会调用中点规则。舍入到整数时,2.5001 高于中点,因此在所有最近值规则下都会变为 3。定向规则不比较哪个数更近:向上取整始终朝正无穷方向移动,向下取整则始终朝负无穷方向移动。

精确输入十进制数为何重要

2.675 等数值通常无法用有限位二进制浮点数精确表示。程序如果先把文本转换为二进制浮点数再舍入,实际判断的值就可能略低于或略高于预期中点。本计算器在决定舍弃哪些数字时始终以文本形式保留十进制数字,因此 2.675 按中点远离零规则舍入到两位小数时,结果准确为 2.68

八种规则的定义遵循 PHP 8.4 的 RoundingMode 枚举,其中列出了本工具使用的四种最近值规则和四种定向规则。PHP 的 round 函数文档还解释了正精度与负精度。本计算器直接对十进制数字应用这些规则,而不会先将输入转换为二进制浮点数。

常见错误

  • 不要混淆小数位数和有效数字。将 0.004567 舍入到两位小数会得到 0.00,舍入到两位有效数字则得到 0.0046
  • 对于负数,向正无穷舍入与远离零舍入并不相同。-2.1 向正无穷舍入为 -2,远离零舍入则得到 -3
  • 条件允许时,应在计算结束时只舍入一次。反复舍入中间结果会累积误差。
  • 句点或逗号都可以标记小数部分,但不能输入数字分组符。科学记数法必须展开成普通小数,确保每个相关数字都明确写出。

常见问题

表示舍入到小数点左侧的数位。精度-1舍入到十位,-2舍入到百位,-3舍入到千位。例如,12345使用默认最近值规则按精度-2舍入后为12300。

两者仅在恰好位于中点时不同。中点远离零会选择离零更远的值,因此2.5变为3。半偶舍入选择末位保留数字为偶数的结果,因此2.5变为2,而3.5变为4。

对于负数并非如此。向上取整是朝正无穷方向移动,所以-2.7变为-2;远离零舍入则会得到-3。使用含义明确的规则名称可以避免“向上”和“向下”这类说法造成歧义。

末尾零显示了所需的小数精度。结果5.200表示舍入到三位小数,只有5.2则无法传达这一信息。将数值复制到固定位数的工作表或报告时,这些零也很有用。

本计算器按固定小数位数或10的幂进行舍入。如果有效数字的数量需要保持不变、不受小数点位置影响,请使用有效数字计算器。

数值会发送到本站用于计算和呈现结果。在可选的多步骤视图中,数值还会写入页面URL,并可能留在浏览器历史记录和服务器日志中。本工具不要求登录账户,也不提供已保存的计算历史。请勿输入机密数据。

相关工具