Em Raku, 0.2constrói a Rate, 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 .numeratore .denominatorpara formatar como desejar. Além disso, o .nudemé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