In role Enumeration§
See primary documentation in context for method Real
multi method Real(::?CLASS:)
Takes a value of an enum and returns it after coercion to Real
:
( cool => '42', almost-pi => '3.14', sqrt-n-one => 'i' );say cool.Real; # OUTPUT: «42»say almost-pi.Real; # OUTPUT: «3.14»try say sqrt-n-one.Real;say $!.message if $!; # OUTPUT: «Cannot convert 0+1i to Real: imaginary part not zero»
Note that if the value cannot be coerced to Real
, an exception will be thrown.
In Date§
See primary documentation in context for method Real
multi method Real(Date: --> Int)
Converts the invocant to Int
. The same value can be obtained with the daycount
method.
Available as of release 2023.02 of the Rakudo compiler.
In DateTime§
See primary documentation in context for method Real
multi method Real(DateTime: --> Instant)
Converts the invocant to Instant
. The same value can be obtained with the Instant
method.
Available as of release 2023.02 of the Rakudo compiler.
In RatStr§
See primary documentation in context for method Real
multi method Real(Real: --> Rat)multi method Real(Real: --> Rat)
The :D
variant returns the numeric portion of the invocant. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns value 0.0
.
In NumStr§
See primary documentation in context for method Real
multi method Real(NumStr: --> Num)multi method Real(NumStr: --> Num)
The :D
variant returns the numeric portion of the invocant. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns value 0e0
.
In Cool§
See primary documentation in context for method Real
multi method Real()
Coerces the invocant to a Numeric
and calls its .Real
method. Fails if the coercion to a Numeric
cannot be done.
say 1+0i.Real; # OUTPUT: «1»say 2e1.Real; # OUTPUT: «20»say 1.3.Real; # OUTPUT: «1.3»say (-4/3).Real; # OUTPUT: «-1.333333»say "foo".Real.^name; # OUTPUT: «Failure»
In role Real§
See primary documentation in context for method Real
multi method Real(Real: --> Real)multi method Real(Real: --> Real)
The :D
variant simply returns the invocant. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns self.new
.
In Complex§
See primary documentation in context for method Real
multi method Real(Complex: --> Num)multi method Real(Complex: --> Num)
Coerces the invocant to Num
. If the imaginary part isn't approximately zero, coercion fails with X::Numeric::Real
.
The :D
variant returns the result of that coercion. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns value 0e0
.
In IntStr§
See primary documentation in context for method Real
multi method Real(IntStr: --> Int)multi method Real(IntStr: --> Int)
The :D
variant returns the numeric portion of the invocant. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns value 0
.
In ComplexStr§
See primary documentation in context for method Real
multi method Real(ComplexStr: --> Num)multi method Real(ComplexStr: --> Num)
Coerces the numeric portion of the invocant to Num
. If the imaginary part isn't approximately zero, coercion fails with X::Numeric::Real
.
The :D
variant returns the result of that coercion. The :U
variant issues a warning about using an uninitialized value in numeric context and then returns value 0e0
.