Documentation for method Num assembled from the following pages:

Class: NumStr §

From NumStr

(NumStr) method Num §

method Num

Returns the Num value of the NumStr.

Role: Rational §

From Rational

(Rational) method Num §

Defined as:

method Num(Rational:D: --> Num:D)

Coerces the invocant to Num by dividing numerator by denominator. If denominator is 0, returns Inf, -Inf, or NaN, based on whether numerator is a positive number, negative number, or 0, respectively.

Class: Str §

From Str

(Str) method Num §

Defined as:

method Num(Str:D: --> Num:D)

Coerces the string to Num, using the same rules as Str.Numeric and handling negative zero, -0e0, and positive zero, 0e0.

my Str $s = "-0/5";
say (.self.^namegiven $s.Numeric;  # OUTPUT: «(0 Rat)␤» 
say (.self.^namegiven $s.Num;      # OUTPUT: «(-0 Num)␤» 

Class: Num §

From Num

(Num) method Num §

method Num()

Returns the invocant.

Role: Real §

From Real

(Real) method Num §

method Num(Real:D:)

Calls the Bridge method on the invocant and then the Num method on its return value.

Class: Cool §

From Cool

(Cool) method Num §

Defined as:

multi method Num()

Coerces the invocant to a Numeric and calls its .Num method. Fails if the coercion to a Numeric cannot be done.

say 1+0i.Num;             # OUTPUT: «1␤» 
say 2e1.Num;              # OUTPUT: «20␤» 
say (16/9.Num;          # OUTPUT: «3.1604938271604937␤» 
say (-4/3).Num;           # OUTPUT: «-1.3333333333333333␤» 
say "foo".Num.^name;      # OUTPUT: «Failure␤»