首页 / 历史 / 正文

js四舍五入(JavaScript中的四舍五入方法)

放大字体  缩小字体 来源:征婚婚介 2026-04-15 13:35  浏览次数:4

在 Javascript 中,常用的四舍五入方法有多种,适用于不同场景,以下是详细介绍:

1.Math.round():四舍五入到最接近的整数

Math.round() 是最基础的四舍五入方法,作用是将数字四舍五入为最接近的整数(返回值为数字类型)。

规则

  • 若小数部分 ≥ 0.5,则向上取整;
  • 若小数部分 < 0.5,则向下取整;
  • 负数处理:遵循 “绝对值四舍五入后保留符号”(例如 -2.6 四舍五入为 -3,因 -3 比 -2 更接近 -2.6)。

示例

Math.round(2.3); // 2(小数部分0.3 < 0.5,向下取整)Math.round(2.6); // 3(小数部分0.6 ≥ 0.5,向上取整)Math.round(-2.3); // -2(绝对值0.3 < 0.5,向下取整后保留负号)Math.round(-2.6); // -3(绝对值0.6 ≥ 0.5,向上取整后保留负号)Math.round(5); // 5(整数直接返回)

2.Math.floor() - 向下取整

Math.floor() 总是向下的方向取整:

Math.floor(4.9)   // 结果是 4Math.floor(4.1)   // 结果是 4Math.floor(-4.1)  // 结果是 -5

3. Math.ceil() - 向上取整

Math.ceil() 总是向上的方向取整:

Math.ceil(4.1)    // 结果是 5Math.ceil(4.9)    // 结果是 5Math.ceil(-4.1)   // 结果是 -4

4.Math.trunc() - 直接截断

Math.trunc() 直接去掉小数部分:

Math.trunc(4.9)   // 结果是 4Math.trunc(4.1)   // 结果是 4Math.trunc(-4.9)  // 结果是 -4
Javas<em></em>cript中的四舍五入方法nerror="javascript:errorimg.call(this);">


5.toFixed(n):保留指定小数位数并四舍五入

toFixed(n) 是 Number 类型的方法,用于将数字四舍五入后保留 n 位小数(返回值为字符串类型)。

规则

  • n 为必填参数(0 ≤ n ≤ 20),表示保留的小数位数;
  • 第 n+1 位小数 ≥ 5 则第 n 位进 1,否则舍去;
  • 若原数字小数位数不足 n 位,会补 0 凑齐。

示例

(3.1415).toFixed(2); // "3.14"(第3位小数1 < 5,舍去)(3.1455).toFixed(2); // "3.15"(第3位小数5 ≥ 5,第2位进1)(10).toFixed(3); // "10.000"(整数补0凑齐3位小数)(0.615).toFixed(2); // 注意:可能返回"0.61"(因浮点数精度问题,建议结合其他方法处理)

注意

toFixed() 可能因 Javascript 浮点数精度问题(如 0.1 无法精确表示)导致结果不符合预期,需谨慎使用。

6. 自定义方法:保留 n 位小数(返回数字类型)

若需要保留 n 位小数且返回数字类型,可通过 “放大倍数 → 四舍五入 → 缩小倍数” 实现(本质是利用 Math.round() 扩展)。

实现逻辑

  1. 将原数字乘以 10^n(放大 n 位,转为整数);
  2. 用 Math.round() 对放大后的数四舍五入;
  3. 再除以 10^n(缩小回原量级)。

示例代码

// 保留n位小数的四舍五入(返回数字)function roundToN(num, n) {  const power = Math.pow(10, n); // 10的n次方  return Math.round(num * power) / power;}roundToN(2.345, 2); // 2.35(保留2位小数)roundToN(5.674, 1); // 5.7(保留1位小数)roundToN(100, 3); // 100(保留3位小数,整数不变)

优势:返回数字类型,避免 toFixed() 的字符串转换问题;精度问题较 toFixed() 更可控。

总结

  • 需四舍五入为整数:用 Math.round();
  • 需保留 n 位小数且返回字符串:用 toFixed(n)(注意浮点数精度);
  • 需保留 n 位小数且返回数字:用自定义方法(Math.round(num * 10^n) / 10^n);
  • 高精度场景(如金额计算):建议使用第三方库(如 decimal.js)避免浮点数误差。
Javas<em></em>cript中的四舍五入方法nerror="javascript:errorimg.call(this);">

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心