数字和可以作为数字的类型的通用角色。
二进制数字运算返回“更宽”类型的对象
Int narrowest Rat FatRat Num Complex widest
在纯数学中通常返回无理数的一元运算通常在 Raku 中返回 Num
。
方法§
方法 Numeric§
multi method Numeric(Numeric: --> Numeric)multi method Numeric(Numeric: --> Numeric)
:D
变体仅返回调用者。:U
变体发出有关在数字上下文中使用未初始化值并返回 self.new
的警告。
方法 narrow§
method narrow(Numeric --> Numeric)
返回转换为最窄类型的数字,该类型可以在不损失精度的情况下容纳它。
say (4.0 + 0i).narrow.raku; # OUTPUT: «4»say (4.0 + 0i).narrow.^name; # OUTPUT: «Int»
方法 ACCEPTS§
multi method ACCEPTS(Numeric: )
如果 $other
可以强制转换为 Numeric
并且在数值上等于调用者(或两者都计算为 NaN
),则返回 True
。
例程 log§
multi log(Numeric, Numeric = e --> Numeric)multi method log(Numeric: Numeric = e --> Numeric)
计算以 $base
为底的对数。默认为自然对数。如果 $base
为 1
,则抛出异常。
对于负参数返回 NaN
。从 6.e 语言版本开始(早期实现存在于 Rakudo 编译器 2023.02+ 中),将为负参数返回 Complex
值。
例程 log10§
multi log10(Numeric --> Numeric)multi method log10(Numeric: --> Numeric)
计算以 10 为底的对数。对于 0
,返回 -Inf
。
对于负参数返回 NaN
。从 6.e 语言版本开始(早期实现存在于 Rakudo 编译器 2023.02+ 中),将为负参数返回 Complex
值。
例程 log2§
multi log2(Numeric)multi method log2(Numeric:)
计算以 2 为底的对数。对于 0
,返回 -Inf
。
对于负参数返回 NaN
。从 6.e 语言版本开始(早期实现存在于 Rakudo 编译器 2023.02+ 中),将为负参数返回 Complex
值。
例程 exp§
multi exp(Numeric, Numeric = e --> Numeric)multi method exp(Numeric: Numeric = e --> Numeric)
返回 $base
乘以数字的幂,如果在没有第二个参数的情况下调用,则返回 e
乘以数字的幂。
方法 roots§
multi method roots(Numeric: Int --> Positional)
返回 $n
个复数根的列表,当提升到 $n
次方时,这些根计算为原始数字。
例程 abs§
multi abs(Numeric --> Real)multi method abs(Numeric: --> Real)
返回数字的绝对值。
例程 sqrt§
multi sqrt(Numeric --> Numeric)multi method sqrt(Numeric --> Numeric)
返回该数字的平方根。对于实数,返回正平方根。
对于负实数,sqrt
返回 NaN
而不是复数,以免混淆不熟悉复数运算的人。如果您想计算复数平方根,请先强制转换为 Complex
,或使用 roots
方法。
从 6.e 语言版本开始(Rakudo 编译器 2023.02+ 中存在早期实现),将为负参数返回 Complex
值。
方法 conj§
multi method conj(Numeric --> Numeric)
返回该数字的复共轭。对于实数,返回该数字本身。
方法 Bool§
multi method Bool(Numeric:)
如果该数字等于零,则返回 False
,否则返回 True
。
方法 succ§
method succ(Numeric:)
返回增加 1 的数字(后继)。
方法 pred§
method pred(Numeric:)
返回减少 1 的数字(前驱)。