在计算期间将浮点值缩放十以保持精度总是精确的吗?
这个问题只适用于任何小于Math.pow (2,53)
和大于的数Math.pow (10,-15)
,因为Math.pow (10,16 ) > Math.pow (2,53)
我希望这可以清除一些问题
0.3 - 0.2 //0.09999999999999998
明显不精确
但是对比例数字进行减法
var a = 0.3;
var b = 0.2;
var l = Math.max ("".split.call(a,".")[1].length,"".split.call(b,".")[1].length);
var c;
a *= Math.pow (10,l);
b *= Math.pow (10,l);
c = a-b;
c /= Math.pow(10,l);
console.log(c); //0.1
给出一个 “精确”的 结果。
问题是,是否有任何浮点值符合上述标准f<Math.pow(10,-15)
,当乘以十的幂(其中Math.pow ( 10 , n<16)<Math.pow(2,53)
)时,不会导致double value nearest
N(b)-N(a)?再次除以相同的值10的幂?
就像上面的片段中描述的那样。
这只是一个感兴趣的问题,而不是用于实际计算,我只是好奇
对不起,我不擅长这个解释的东西