В ответе на 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²³
- person Brad Gilbert   schedule 04.12.2015