Numeric
ErrorsCollection

Numeric

Synthesised documentation from type/X/AdHoc type/Nil type/NumStr type/ComplexStr type/IO/Path type/Enumeration type/Endian type/RatStr type/IntStr type/Sequence type/StrDistance type/Bool type/Numeric type/Thread type/Map type/Capture type/Str type/List

From type/X/AdHoc

See Original text in context

method Numeric()

Converts the payload to Numeric and returns it

From type/Nil

See Original text in context

method Numeric()

Warns the user that they tried to numify a Nil.

From type/NumStr

See Original text in context

multi method Numeric(NumStr:D: --> Num:D)
multi method Numeric(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.

From type/ComplexStr

See Original text in context

multi method Numeric(ComplexStr:D: --> Complex:D)
multi method Numeric(ComplexStr:U: --> Complex: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+0i>.

From type/IO/Path

See Original text in context

method Numeric(IO::Path:D: --> Numeric:D)

Coerces basename to Numeric. fail with X::Str::Numeric if base name is not numerical.

From type/Enumeration

See Original text in context

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

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

enum Numbers ( cool => '42'almost-pi => '3.14'sqrt-n-one => 'i' );
say cool.Numeric;       # OUTPUT: «42␤» 
say almost-pi.Numeric;  # OUTPUT: «3.14␤» 
say sqrt-n-one.Numeric# OUTPUT: «0+1i␤»

Note that if the value cannot be coerced to Numeric, an exception will be thrown.

From type/Endian

See Original text in context

multi method Numeric(Endian:D --> Int:D)

Returns the value part of the enum pair.

say NativeEndian.Numeric;    # OUTPUT: «0␤» 
say LittleEndian.Numeric;    # OUTPUT: «1␤» 
say BigEndian.Numeric;       # OUTPUT: «2␤»

Note that the actual numeric values are subject to change. So please use the named values instead.

From type/RatStr

See Original text in context

multi method Numeric(RatStr:D: --> Rat:D)
multi method Numeric(RatStr: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.

From type/IntStr

See Original text in context

multi method Numeric(IntStr:D: --> Int:D)
multi method Numeric(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.

From type/Sequence

See Original text in context

method Numeric(::?CLASS:D:)

Returns the number of elements in the cached sequence.

From type/StrDistance

See Original text in context

Returns the distance as a number.

From type/Bool

See Original text in context

multi method Numeric(Bool:D --> Int:D)

Returns the value part of the enum pair.

say False.Numeric;                                # OUTPUT: «0␤» 
say True.Numeric;                                 # OUTPUT: «1␤»

From type/Numeric

See Original text in context

multi method Numeric(Numeric:D: --> Numeric:D)
multi method Numeric(Numeric:U: --> Numeric: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.

From type/Thread

See Original text in context

method Numeric(Thread:D: --> Int:D)

Returns a numeric, unique thread identifier, i.e. the same as id.

From type/Map

See Original text in context

method Numeric(Map:D: --> Int:D)

Returns the number of pairs stored in the Map (same as .elems).

my $m = Map.new('a' => 2'b' => 17);
say $m.Numeric;                                   # OUTPUT: «2␤»

From type/Capture

See Original text in context

method Numeric(Capture:D: --> Int:D)

Returns the number of positional elements in the Capture.

say \(1,2,3apples => 2).Numeric# OUTPUT: «3␤»

From type/Str

See Original text in context

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

Coerces the string to Numeric using semantics equivalent to val routine. Fails with X::Str::Numeric if the coercion to a number cannot be done.

Only Unicode characters with property Nd, as well as leading and trailing whitespace are allowed, with the special case of the empty string being coerced to 0. Synthetic codepoints (e.g. "7\x[308]") are forbidden.

While Nl and No characters can be used as numeric literals in the language, their conversion via Str.Numeric will fail, by design; the same will happen with synthetic numerics (composed of numbers and diacritic marks). See unival if you need to coerce such characters to Numeric. +, - and the Unicode MINUS SIGN − are all allowed.

" −33".Numeric;       # OUTPUT: «-33␤» 

From type/List

See Original text in context

method Numeric(List:D: --> Int:D)

Returns the number of elements in the list (same as .elems).

say (1,2,3,4,5).Numeric# OUTPUT: «5␤»