TypeScript实现库存差值计算时小数处理返回整数值问题求解
问题根因
现有代码使用parseInt()解析库存数值,该方法会强制截断小数部分只保留整数,因此涉及小数的库存变动计算结果不符合预期。
修复方案
直接将数值解析方法替换为支持小数的parseFloat(),同时补充浮点数精度处理逻辑即可,修改后的函数如下:
formatDifference(change: StockChange) { const newValue = parseFloat(change.newValue || '0'); const oldValue = parseFloat(change.oldValue || '0'); // toFixed参数可根据业务需要的小数精度调整,2代表最多保留2位小数 const difference = Number((newValue - oldValue).toFixed(2)); return difference > 0 ? '+' + difference : difference; }
配套说明
- 原有HTML代码无需做任何修改,差值的展示逻辑保持不变
- 整数场景的计算结果和原有逻辑完全一致,不会影响存量业务
- 如果业务需要支持更多位小数,修改
toFixed的入参即可,比如要保留3位小数就改为toFixed(3)
内容的提问来源于stack exchange,提问作者DZF
相关产品推荐
相关产品推荐

