In Date§

See primary documentation in context for method Real

multi method Real(Date:D: --> Int:D)

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 RatStr§

See primary documentation in context for method Real

multi method Real(Real:D: --> Rat:D)
multi method Real(Real:U: --> Rat:D)

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 DateTime§

See primary documentation in context for method Real

multi method Real(DateTime:D: --> Instant:D)

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 NumStr§

See primary documentation in context for method Real

multi method Real(NumStr:D: --> Num:D)
multi method Real(NumStr:U: --> Num:D)

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 IntStr§

See primary documentation in context for method Real

multi method Real(IntStr:D: --> Int:D)
multi method Real(IntStr:U: --> Int:D)

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 role Real§

See primary documentation in context for method Real

multi method Real(Real:D: --> Real:D)
multi method Real(Real:U: --> Real:D)

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 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 ComplexStr§

See primary documentation in context for method Real

multi method Real(ComplexStr:D: --> Num:D)
multi method Real(ComplexStr:U: --> Num:D)

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.

In role Enumeration§

See primary documentation in context for method Real

multi method Real(::?CLASS:D:)

Takes a value of an enum and returns it after coercion to Real:

enum Numbers ( 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 Complex§

See primary documentation in context for method Real

multi method Real(Complex:D: --> Num:D)
multi method Real(Complex:U: --> Num:D)

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.