提问人:Borja 提问时间:3/31/2019 最后编辑:norbitrialBorja 更新时间:3/31/2019 访问量:61
Javascript 中的精确浮点数是如何工作的?
How works precision Float of numbers in Javascript?
问:
大家好,我正在研究有关天文计算的文件,所以我需要更多的精度。
我对每一行都有很多操作,我想要更精确的结果(逗号后还有十或二十个小数)。javascript
在JavaScript中如果我不声明小数位数(例如使用),逗号后有多少个位置,语言在计算时考虑?.ToFixed(n)
例如:
var a= 1.123456789*3.5; // result 3.9320987615
var b= a/0.321;
var c= b*a;
// c => 48.16635722800571
结果会是这样吗?就像对 javascript 的每个变量在逗号后使用所有小数一样,近似值是多少?
为什么在其他问题中用户建议使用其他库?decimal.js
如果我的问题看起来很愚蠢,我很抱歉,但对我来说很重要。 我希望你能帮助我。
对不起我的英语!
答:
-1赞
MohMul15
3/31/2019
#1
仅仅因为 toFixed() 方法将数字转换为字符串,并保留指定数量的小数。因此,返回的值将是一个字符串而不是一个数字。
2赞
The Unfit donkey
3/31/2019
#2
Javascript 使用 IEEE-754 双精度,这意味着它只能将数字计算到大约 15 位十进制数字的精度,超过被截断的精度。如果你需要更高的精度,你必须使用或其他类似的库。其他问题推荐或其他库是因为它很容易放入您的程序中,并且可以提供您想要的尽可能多的精度。decimal.js
decimal.js
默认情况下,它未在计算机中实现的原因是,计算机计算到 20 位而不是 15 位数字需要更多的努力,因为计算机只能计算到 15 位十进制数字。如果你想阅读更多关于它的信息,我建议你阅读维基百科上的任意精度算术。
评论
0赞
Rudy Velthuis
4/1/2019
换言之:精度约为 15 位的类型是硬件支持的类型。任何更大的事情都无法在可用的硬件支持下完成,因此不仅更困难(必须完全在软件中完成),而且速度也慢得多。
评论