如何实现JavaScript中加减乘除的精确计算避免浮点数误差?

2026-04-09 01:460阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计666个文字,预计阅读时间需要3分钟。

如何实现JavaScript中加减乘除的精确计算避免浮点数误差?

在CRM系统中,二代审核核需详细页面时,发现JS无法进行精确计算,存在bug。例如,当输入数值进行运算时,结果显示在不同位置,如`dubheInvest=invest * (1 - ratio);`运算时,发现结果不准确。需要按比例(后端传值类似0.8的小数)将用户输入的数字以不同方式显示。

如何实现JavaScript中加减乘除的精确计算避免浮点数误差?

JS无法进行精确计算的bug

在做CRM,二代审核需求审核详情页面时。需要按比例(后端传类似0.8的小数)把用户输入的数字显示在不同的地方。
在做dubheInvest = invest * (1 - ratio);运算时发现问题。具体如下:
示例代码:

console.log( 1 - 0.8 ); //输出 0.19999999999999996 console.log( 6 * 0.7 ); //输出 4.199999999999999 console.log( 0.1 + 0.2 ); //输出 0.30000000000000004 console.log( 0.1 + 0.7 ); //输出 0.7999999999999999 console.log( 1.2 / 0.2 ); //输出 5.999999999999999

通过上面举出的例子可以看到,原生的js运算结果不一定准确,会丢失精度。

阅读全文

本文共计666个文字,预计阅读时间需要3分钟。

如何实现JavaScript中加减乘除的精确计算避免浮点数误差?

在CRM系统中,二代审核核需详细页面时,发现JS无法进行精确计算,存在bug。例如,当输入数值进行运算时,结果显示在不同位置,如`dubheInvest=invest * (1 - ratio);`运算时,发现结果不准确。需要按比例(后端传值类似0.8的小数)将用户输入的数字以不同方式显示。

如何实现JavaScript中加减乘除的精确计算避免浮点数误差?

JS无法进行精确计算的bug

在做CRM,二代审核需求审核详情页面时。需要按比例(后端传类似0.8的小数)把用户输入的数字显示在不同的地方。
在做dubheInvest = invest * (1 - ratio);运算时发现问题。具体如下:
示例代码:

console.log( 1 - 0.8 ); //输出 0.19999999999999996 console.log( 6 * 0.7 ); //输出 4.199999999999999 console.log( 0.1 + 0.2 ); //输出 0.30000000000000004 console.log( 0.1 + 0.7 ); //输出 0.7999999999999999 console.log( 1.2 / 0.2 ); //输出 5.999999999999999

通过上面举出的例子可以看到,原生的js运算结果不一定准确,会丢失精度。

阅读全文