在answer on StackOverflow en Español中,我發現Perl 6避免了許多其他語言的計算錯誤,因爲它跟蹤分子和分母。也就是說,十進制數字實際上表示爲比率。然而,它確實對很小的數字產生一個小錯誤:爲什麼我的小號碼沒有被準確存儲?
> 0.000000000000000000071.nude.perl
(71, 1000000000000000000000)
> 0.0000000000000000000071.nude.perl
(71, 10000000000000000000000)
> 0.00000000000000000000071.nude.perl
(71, 99999999999999991611392)
這是什麼東西,將在未來版本中修復?
我得到使用相同的答案perl6/rakudo-star-2015.09
和perl6/rakudo-star-2015.11
這應該是一個錯誤,或轉換爲數字。大鼠應該只有'uint64.Range.max'分母。 18446744073709551615(20位數字)如果你想要一個與分母大的Rational,使用FatRat。 'FatRat.new(71,10²³)'或'71.FatRat /10²³' –
@BradGilbert:+1 - 我在寫我的答案時還沒有看到您的評論:( – Christoph