Em Raku, 0.2
constrói a Rat
e, portanto, produz o mesmo resultado que a escrita 1/5
(que será dobrada constantemente) ou <1/5>
(a forma literal). Você só obtém ponto flutuante no caso de especificar um expoente (por exemplo, 2e-1
).
O trabalho do método .raku
(anteriormente conhecido como .perl
) é produzir algo que irá percorrer e produzir o mesmo valor se EVAL
'd. No caso de 1/5
, isso pode ser representado exatamente como um decimal, portanto será produzido 0.2
. Ele apenas recorre à representação fracionária quando uma forma decimal não ida e volta.
Você sempre pode recuperar o numerador e o denominador usando os métodos .numerator
e .denominator
para formatar como desejar. Além disso, o .nude
método retorna uma lista do numerador e denominador, ao qual se pode juntar um /
se desejado:
say (1/6+1/6).nude.join("/"); # 1/3
say (1/10+1/10).nude.join("/"); # 1/5