在角色 Real 中§

有关方法 base,请参见主要文档在上下文中

method base(Real:D: Int:D $base where 2..36$digits? --> Str:D)

使用 $base 作为底数将数字转换为字符串。对于大于十的 $base,使用大写拉丁字母。

255.base(16);            # 'FF'

可选的 $digits 参数要求小数部分有这么多个数字(可能是非负数)。如果省略,将根据类型选择合理的默认值。对于 Int,此默认值为 0。对于 Num,默认值为 8。对于 Rational,位数会根据分母的大小进行调整,最小为 6。

可以将 Whatever (*) 的特殊值指定为 $digits,其功能与未为 Rational 以外的所有 Real 类型指定 $digits 时相同。对于 RationalWhatever 表示您希望小数部分的所有可能数字,但请小心:由于无法检测到重复的小数部分(算法最终将在生成 2**63 个数字后停止)。

产生的最后一位数字始终四舍五入。

say pi.base(103);      # OUTPUT: «3.142␤» 
say (1/128).base(10*); # OUTPUT: «0.0078125␤» 
say (1/100).base(10*); # OUTPUT: «0.01␤» 
say (1/3)  .base(10*); # WRONG: endlessly repeating fractional part

有关反向操作,请参见 parse-base