大家好,我正在处理关于javascript天文计算的文件,所以我需要更高的精度。我对每一行都有很多操作,我希望结果更精确(逗号后面的小数点也是10或20)。
在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或其他库?
如果我的问题看起来很愚蠢,我很抱歉,但对我来说很重要。我希望你能帮助我。
对不起我的英语!
发布于 2019-03-30 19:12:38
Javascript使用IEEE-754双精度,这意味着它只计算15位小数位的精度,就像它被切断一样。如果您需要更高的精度,则必须使用decimal.js或其他类似的库。其他问题推荐decimal.js或其他库是因为它很容易放到您的程序中,并且可以提供您想要的精确性。
默认情况下,它没有在计算机中实现的原因是,计算机要计算到20位而不是15位数字需要付出更多的努力,因为计算机构建时只计算到15位小数。如果你想更多地阅读它,我建议你在维基百科上阅读任意精度算法。
发布于 2019-03-30 18:09:16
仅仅因为toFixed()方法将数字转换为字符串,保持指定的小数。因此,返回的值将是字符串而不是数字。
https://stackoverflow.com/questions/55434187
复制相似问题