四舍五入计算器
输入任意数字,按四舍五入 / 银行家舍入 / 向上向下取整等规则,保留 N 位小数或取整到最接近的 10、0.5、0.05 等倍数,给出结果、差值与逐步过程,高精度不丢位。
支持整数、小数(可带负号)、科学记数法(1.2e3);千位逗号会被忽略。
保留小数点后指定位数;0 位即取整到整数。
最常用:小数点后一位 ≥5 进位、<5 舍去;负数按绝对值同理。
- 规则:四舍五入(逢 5 进位,远离零)。
- 目标:保留 2 位小数。
- 看第 3 位小数(决定位)依规则处理,其后各位舍去:3.14159 → 3.14。
- 与原数之差:3.14 − 3.14159 = -0.00159。
计算在浏览器本地用高精度十进制运算完成,像 0.045 保留两位小数得 0.05、1.005 得 1.01,不会出现浮点误差导致的“该进位却没进”。
怎么用
- 输入要处理的数字:在「数字」框填整数、小数(可带负号),或科学记数法(如 1.2e3),千位逗号会被忽略。
- 选择取整方式:「保留小数位」把数四舍五入到小数点后 N 位(0 位即取整到整数);「取整到倍数」把数取到最接近的某个倍数(如 10、100、0.5、0.05),可点常用倍数快捷键。
- 选择舍入规则:默认四舍五入(逢 5 进位)。也可选银行家舍入(四舍六入五成双)、五舍六入、向上取整、向下取整、远离零、向零截断——半舍入类(四舍五入/银行家/五舍六入)主要在「正好落在中间(…5)」时不同;定向取整类(向上/向下/向零/远离零)对任意有非零小数的数都可能不同,负数还要看符号方向。
- 读取结果与步骤:结果区给出取整后的值、与原数的差值,以及逐步过程。计算在浏览器本地用高精度十进制完成,像 0.045 保留两位得 0.05,不受浮点误差影响。
核心要点
「四舍五入」是把一个数按精度要求缩短:保留到某位后,用一条舍入规则决定末位是否进 1。半舍入类(四舍五入 / 银行家 / 五舍六入)主要在正好落在中间(…5)时结果不同;定向取整类(向上 / 向下 / 向零 / 远离零) 对任意有非零舍去部分的数都可能不同,且负数要看符号方向。
- 四舍五入:逢 5 进位(远离零),
3.5→4、−2.5→−3。最常用。 - 银行家舍入(四舍六入五成双):逢 5 取偶,
2.5→2、3.5→4。会计/统计常用。 - 向上取整(进一法):朝 +∞,
2.1→3;向下取整(去尾法):朝 −∞,2.9→2。 - 向零截断:砍掉小数,
2.9→2、−2.9→−2。 - 取整到倍数:取到最接近的步长,
1234→1230(10)、2.3→2.5(0.5)。 - 高精度:
0.045保留两位得0.05,不受浮点误差影响。
例(同数不同规则):把 2.1 取整,四舍五入 / 向零截断得 2, 向上取整 / 远离零得 3——可见定向取整不必等到「正好是 …5」就已经分道扬镳, 这也是选错规则时很常见的偏差来源;拿不准时,先想清楚要「就近」还是「够用(进一)/够省(去尾)」。
原理与公式
取整(rounding)是把数字压缩到某个精度:先确定保留位(保留到第几位小数,或取整到哪个倍数), 再看要舍去部分决定末位是否进 1。核心分歧只在「要舍去的部分正好是一半(…5)」时——不同规则给出不同答案。
舍入规则对照
| 规则 | 2.5→整 | −2.5→整 | 3.5→整 | 说明 |
|---|---|---|---|---|
| 四舍五入(half-up) | 3 | −3 | 4 | 逢 5 远离零进位,日常默认 |
| 五舍六入(half-down) | 2 | −2 | 3 | 逢 5 靠近零舍去 |
| 银行家(half-even) | 2 | −2 | 4 | 逢 5 取最近偶数,统计无偏 |
| 向上取整(ceil) | 3 | −2 | 4 | 朝 +∞,与符号有关 |
| 向下取整(floor) | 2 | −3 | 3 | 朝 −∞,与符号有关 |
| 向零截断(down) | 2 | −2 | 3 | 直接舍去小数部分 |
注:ceil/floor 依 +∞ / −∞ 方向,对负数与「远离零 / 向零」并不相同; 非临界值(如 2.4、2.6)在四舍五入、银行家、五舍六入下结果一致。
保留 N 位小数
看第 N+1 位小数(决定位)按所选规则处理,其后各位舍去。例四舍五入保留两位:3.14159 → 3.14、3.146 → 3.15;进位越级时自动向前进位,9.96 保留一位 → 10.0。要求位数多于现有位数时按约定补 0(1.2 保留三位 → 1.200)。
取整到倍数
取到最接近的步长 m:先算 数值 ÷ m,按规则取整,再 × m。 例 1234 取整到 10 → 1230;2.3 取整到 0.5 → 2.5;9.98 取整到 0.05 → 10。步长可为任意正数(十位、百位、0.5、0.05、0.25 等)。
为什么要用高精度
计算机的双精度浮点存不下 0.045、1.005 这类十进制小数,普通计算会把0.045 存成 0.04499… 导致「该进没进」。本工具用十进制库decimal.js 按十进制原样运算,0.045 → 0.05、1.005 → 1.01,与手算一致。
常见问题
- 四舍五入到底是什么规则?负数怎么处理?
- 四舍五入(round half up)看要舍去部分的第一位(决定位):≥5 就把保留的末位加 1(进位),<5 就直接舍去。例如保留两位小数:3.14159 看第三位小数 1(<5,舍)得 3.14;3.146 看第三位 6(≥5,进)得 3.15。负数按绝对值同样处理再加负号,所以 −2.5 取整到整数为 −3(远离零)。本工具默认用这一规则,也是日常与中小学最常用的口径。
- 银行家舍入(四舍六入五成双)和普通四舍五入有什么区别?
- 银行家舍入(round half to even)只在「正好是 5、且 5 后面没有其它非零数字」这种正中间的临界情形与普通四舍五入不同:此时它不总是进位,而是把保留的末位凑成偶数。例如保留到整数:2.5→2(2 是偶数)、3.5→4(4 是偶数)、0.5→0、1.5→2。好处是对大量数据求和时,进位与舍去大致各半,不像「逢 5 必进」那样长期使总和系统性偏大,因此会计、统计、IEEE 754 浮点默认舍入都采用它。而 2.4→2、2.6→3 这类非临界情形,两种规则结果完全一样。
- 取整到整数有几种方式?向上取整、向下取整、截断怎么选?
- 常见有五种:① 四舍五入——看小数是否 ≥0.5;② 向上取整(ceil,进一法)——总是朝 +∞ 方向进,2.1→3、−2.9→−2,常用于「需要多少个/多少份」这类不能不够的场景;③ 向下取整(floor,去尾法)——总是朝 −∞ 方向,2.9→2、−2.1→−3;④ 向零截断(truncate)——直接砍掉小数部分,2.9→2、−2.9→−2;⑤ 远离零——绝对值方向向上,2.1→3、−2.1→−3。注意向上/向下取整对负数与「远离零/向零」并不相同,符号方向要看清。
- 怎么把数取整到最接近的 10、100 或 0.5、0.05?
- 在「取整到倍数」模式填入步长即可:工具会先把数除以步长、按所选规则取整、再乘回步长。例如 1234 取整到 10 得 1230、取整到 100 得 1200(向下)或 1200/1300(四舍五入看十位);2.3 取整到 0.5 得 2.5;9.98 取整到 0.05 得 10。取整到 0.05 常用于价格「凑角」、取整到 0.5 用于评分/尺码等场景。取整倍数可以是任意正数,不限于 10 的幂。
- 保留两位小数和保留两位有效数字一样吗?
- 不一样。保留两位小数数的是「小数点后两位」,与数字大小、前导零无关,如 0.00456 保留两位小数为 0.00;保留两位有效数字数的是「从第一个非零数字起的两位」,如 0.00456 保留两位有效数字为 0.0046。前者按绝对精度、后者按相对精度。日常报账、金额多用「保留 N 位小数」,物理化学测量多用「保留 N 位有效数字」。要按有效数字取整请用有效数字计算器。
- 为什么用普通计算器时 0.045 保留两位小数会得到 0.04?
- 这是浮点误差。计算机的双精度浮点(double)用二进制存储,存不下 0.045、1.005 这类十进制小数,实际存成的是 0.044999…、1.00499…,四舍五入时「本该进位却没进」,于是得到 0.04、1.00。本工具用十进制高精度库(decimal.js)按十进制原样存储和取整,0.045 保留两位稳定得 0.05、1.005 得 1.01,与手算一致,也能处理超大 / 超小数字。
- 遇到 9.96、99.9 这种进位会「越级」的情况怎么办?
- 照常进位、数量级自动加 1。例如 9.96 保留一位小数:第二位小数 6≥5 进位,末位 9+1 向前进位得 10.0;99.9 取整到整数得 100;0.998 保留两位小数得 1.00。本工具用高精度运算逐位进位,结果会正确「进位到下一位」,不会停在 9.99 之类的错误值。
- 这个计算器支持负数和科学记数法吗?会存到服务器吗?
- 都支持。可输入负数(如 −2.5)与科学记数法(如 1.2e3、6.02E23),千位逗号和空格会被自动忽略。所有计算都在你的浏览器本地完成,不上传、不存储任何输入,刷新即清空,可放心用于日常与工作中的取整。