首页 > 解决方案 > Javascript中的数字计算

问题描述

let price: number = 0.7; // $
let discountPrice: number = 0.6; // $

let netPrice: number = price - discountPrice;

console.log(netPrice); // 0.09999999999999998 but not 1 cent

由于 IEEE 754 标准,我们在计算后会丢失数据精度。

电子商务应用程序中如何进行客户端计算?保持精度

标签: javascriptnumbers

解决方案


对于电子商务应用程序和财务计算,您应该将十进制值放大一个一致的乘数,并将所有货币值表示为整数。这是为了避免浮点数学的细微差别。在 JavaScript 中,我们只有用于数值的浮点数据类型,但幸运的是浮点数据类型下的整数数学是精确的。因此,将货币值转换为整数(例如,2550美分而不是25.50美元)解决了这个问题。


推荐阅读