首页 > 技术文章 > 为什么js项目中金额强烈推荐使用分而不是元

zhupengfei 2021-07-07 19:09 原文

相信我们都已经知道在js中浮点数据精度的问题了
看下面的例子

0.1 + 0.2
0.30000000000000004

如何解决呢?
在前后端交互过程中统一使用分为单位进行通讯,在最后的表示层处理为元显示

(10 + 20) / 100
0.3

在分转换为元时,不要使用乘以0.01的方式,而要使用除以100的方式

(800 + 79) * 0.01
8.790000000000001
(800 + 79) / 100
8.79

当然,你也可以说接口返回元,然后前端在运算时,乘以100再运算,也是可以的。但这样处理过于复杂,而且前端不一定会记得先乘以100再运算,容易造成错误。

(0.1 * 100 + 0.2 * 100) * 0.01
0.3

推荐阅读