http://www.perlmonks.org?node_id=1203857

freakcoco has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monk, I love perl6 number, it use rationals number by defulat.
But how about large number? can I use it by default?
some code like that:
my Rat @example =  1 , * ** 0.9999 ... Inf;
This work fine on  @example[^4]
But when the number going bigger , it will stored float point by default and type check fail.
How can i fix that?



fixed question: Addition 、 Subtraction 、Multiplication 、 Division 、 Modulo
my Rat @ex01 = 1.0 , * + 0.9999 ... Inf; my Rat @ex02 = 1.0 , * - 0.9999 ... Inf; my Rat @ex03 = 1.0 , * * 0.9999 ... Inf; my Rat @ex04 = 1.0 , * / 0.9999 ... Inf; my Rat @ex05 = 1.0 , * % 0.9999 ... Inf; my %ex = :add(@ex01), :substrat(@ex02), :mult(@ex03), div(@ex04), mod(@ex05); try { for < add substrat mult div mod > -> $op { for 1 .. 20 -> $count { .say; (%ex{$op})[$count] } } }
This try will fail in Multiplication and Division
Why?
How to fix it?