You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将数字保留小数点后三位

在JavaScript中截断数字到小数点后三位(非四舍五入)

看你的需求是要直接截断小数点后第四位及以后的数字,而不是四舍五入——比如把14.4565576变成14.456,不是14.457对吧?下面给你几种靠谱的实现方式:

方法一:使用数学运算(最简洁)

利用Math.trunc()直接截断整数部分的特性,先把数字放大1000倍,截断小数后再缩小回去:

const myresult = 14.4565576;
const truncated = Math.trunc(myresult * 1000) / 1000;
console.log(truncated); // 输出 14.456
  • 优点:代码短,处理正负数字都没问题(比如-14.4567会变成-14.456)
  • 注意:如果原数字小数部分不足三位,结果会保留原有的小数位数(比如14.2处理后还是14.2,不是14.200),如果需要字符串形式的补零,可以再加一步truncated.toFixed(3),但要先做截断再转哦!

方法二:字符串处理(更直观,适合调试)

把数字转成字符串后拆分整数和小数部分,手动截取小数前三位再拼接:

function truncateToThreeDecimals(num) {
  const [integerPart, decimalPart] = num.toString().split('.');
  // 没有小数部分直接返回原数
  if (!decimalPart) return num;
  // 拼接整数部分和截取后的小数部分,再转回数字
  return parseFloat(`${integerPart}.${decimalPart.slice(0, 3)}`);
}

const myresult = 14.4565576;
console.log(truncateToThreeDecimals(myresult)); // 输出 14.456
  • 优点:逻辑清晰,能直观看到每一步的处理过程,适合新手理解
  • 注意:如果数字是科学计数法形式(比如极大或极小的数),这种方法可能需要额外处理,但日常业务中很少遇到这种情况

避坑提醒:别直接用toFixed(3)

很多人第一反应会想到toFixed(),但它是四舍五入的,比如:

console.log(14.4565576.toFixed(3)); // 输出 "14.457"

这和你要的截断效果不符,所以一定要先做截断处理,再根据需求决定是否用toFixed()补零。

内容的提问来源于stack exchange,提问作者keszok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 23:37:42