小数点后第19位及以后的数学精度



我有相同的数据集并运行相同的代码,但有时我在小数点后第19位及之后得到不同的结果。虽然对于小于0.0001的数字我不太关心这个问题,但这让我怀疑小数点后第19位是否是Raku的精度极限?

Word 104 differ: 
0.04948872986571077     19 chars 
0.04948872986571079     19 chars
Word 105 differ: 
0.004052062278212545    20 chars 
0.0040520622782125445   21 chars

TL;DR查看文档的杰出数字页面。


(在我写下下面的答案之前,我已经忘记了那一页。把这个答案看作是对该页面的几个方面的简要总结。


这有两个方面。内部精度和打印精度。

100%内部精度,直到RAM耗尽

Raku支持任意精度的数字类型。引用维基百科相关页面:

精度数字仅受主机系统可用内存的限制

[1] 如果你这样做,它将保持100%的精度,直到内存耗尽。
tbody> <<tr>
任意精度类型对应的类型检查[2]该类型值的示例
Intmy Int $foo ...66174449004242214902112876935633591964790957800362273
FatRatmy FatRat $foo ...66174449004242214902112876935633591964790957800362273 / 13234889800848443102075932929798260216894990083844716

相关内容

  • 没有找到相关文章

最新更新