javascript - 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 标准,我们在计算后会丢失数据精度。
电子商务应用程序中如何进行客户端计算?保持精度
解决方案
对于电子商务应用程序和财务计算,您应该将十进制值放大一个一致的乘数,并将所有货币值表示为整数。这是为了避免浮点数学的细微差别。在 JavaScript 中,我们只有用于数值的浮点数据类型,但幸运的是浮点数据类型下的整数数学是精确的。因此,将货币值转换为整数(例如,2550
美分而不是25.50
美元)解决了这个问题。
推荐阅读
- html - UIKit 切换元素默认隐藏
- javascript - 超链接:设置onClick
- javascript - 未捕获的类型错误:无法读取未定义的属性“长度”...?
- python - 尽管有不同的代码,但两个不同的文件给出相同的输出 - PyQT5 和 Python
- ssis - SSIS 使用包部署模型使用项目参数部署带有变量的包
- angularjs - 如何获取 $resource 对象的长度?
- c# - 如何清除使用脚手架创建视图时创建的 EditorFor 输入元素。
- javascript - 使用 WordPress 默认音频播放器播放音频自定义起点和终点
- csv - Pig 无法从 CSV 转储数据
- google-cloud-dataflow - 数据流中的 Cloud Bigtable 多前缀扫描