在角色 Real 中§
有关方法 base,请参见主要文档在上下文中
method base(Real: Int where 2..36, ? --> Str)
使用 $base
作为底数将数字转换为字符串。对于大于十的 $base
,使用大写拉丁字母。
255.base(16); # 'FF'
可选的 $digits
参数要求小数部分有这么多个数字(可能是非负数)。如果省略,将根据类型选择合理的默认值。对于 Int,此默认值为 0。对于 Num
,默认值为 8。对于 Rational
,位数会根据分母的大小进行调整,最小为 6。
可以将 Whatever
(*
) 的特殊值指定为 $digits
,其功能与未为 Rational
以外的所有 Real
类型指定 $digits
时相同。对于 Rational
,Whatever
表示您希望小数部分的所有可能数字,但请小心:由于无法检测到重复的小数部分(算法最终将在生成 2**63 个数字后停止)。
产生的最后一位数字始终四舍五入。
say pi.base(10, 3); # 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