提问人:Paul Carlton 提问时间:5/4/2016 最后编辑:Paul Carlton 更新时间:5/4/2016 访问量:76
如果我将浮点数乘以它的倍数 (1.3 * 10) 以将其放入整数中,它是否比在计算中保持浮点数更准确?
If I times a float by it's multiple (1.3 * 10) to put it into an integer, is it more accurate than staying with the float in computation?
问:
好的,好的。我知道那里有图书馆。我知道有很多关于浮动精度的帖子,但我遇到的那些并没有真正为我回答这个问题。作为一个好奇的人,我想要一个彻底的答案。
顶级域名;
在 JavaScript 中,将浮点数“转换”为整数是否更准确,而不是仅仅通过浮点数计算?意思是:在一个方程中,如果 I ,是不是更准确?1.3e-12 * 1.4
(1.3e-12 * 10000000000000) * (1.4 * 10000000000000) / 10000000000000
长
我想知道我是否取一个数字,比如:1.3e-11 和 ,是否需要 not 运算符 ,或任何将截断 64 位浮点数的按位运算符,以确保浮点数变为整数?如果这些数字无论如何都以浮点数的形式存储在 javascript 中,那么在我看来,它并不是真的需要。另外,在 JavaScript 中将浮点数“转换”为整数是否安全且非常准确?如果我以这种方式处理大小数,它似乎确实提高了输出精度。~~(1.3 * Math.pow(11, 10))
~~
例如:
144 * 0.3048 / 0.0254
从 144 平方英尺到英寸的转换得到 1728.0000000000002。然而:
var a, b, c, p = 4;
a = 144 * Math.pow(10, p);
b = 0.3048 * Math.pow(10, p);
c = 0.0254 * Math.pow(10, p);
console.log((a * b / c) / Math.pow(10, p));
正好产生 1728。
我的另一个问题是:在一系列计算中,存储的未转换为较大整数的超长计算浮点数是否不太准确?
答: 暂无答案
评论
* 10000000000000
绝不是“整数转换”。顺便说一句,你的第一个例子是无效的,因为你需要在乘法后除两次。