我在地图应用中工作。所以我用浮点数(lat和long)操纵了很多。我知道我们有与0.1 + 0.2!== 0.3相关的问题。那么我怎么能取消它呢?有没有方法可以添加多个浮点数?
答案 0 :(得分:2)
一种解决方案是以一种考虑到由IEEE 754浮点数无法准确表示所有分数而导致的(极小)精度损失的方式比较值,例如
function diff(a, b) {
return Math.abs(a - b);
}
var a = 0.1;
var b = 0.2;
if ( diff(0.3, a+b) > 1e-10) {
/* fail */
}
答案 1 :(得分:0)
如果您需要使用Javascript中的精确度,则应使用https://github.com/MikeMcl/big.js/
等大数字