All Classes Namespaces Functions Variables Groups Pages
<number> Class Reference

Methods in this pseudo-class can be executed on arbitrary precision number values. More...

Inheritance diagram for Qore::<number>:
[legend]

## Public Member Functions

string | format (string fmt)
| Returns a string of a formatted number according to a format string.
bool | infp ()
| Returns True if the number is infinity (+ or -)
bool | intp ()
| Returns True because number values can be converted to integers.
bool | nanp ()
| Returns True if the number is NaN (not a number)
int | prec ()
| Returns the precision of the current number.
int | sign ()
| Returns -1 if the number is negative, 0 if it is zero, or 1 if it is positive.
bool | strp ()
| Returns True because number values can be converted to strings.
string | toString (int fmt)
| Returns the string representation of the number according to the format argument.
int | typeCode ()
| Returns Qore::NT_NUMBER.
bool | val ()
| Returns True if the number is non-zero, False if zero.
Public Member Functions inherited from <value>
bool | callp ()
| Returns False; this method is reimplemented in other types and will return True if the given expression is a callable value (ie closures or call references)
bool | empty ()
| Returns True; this method will be reimplemented in container types where it may return False.
bool | intp ()
| Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to an integer.
AbstractIterator | iterator ()
| Returns an iterator object for the value; the default iterator object returned is SingleValueIterator.
int | lsize ()
| Returns 1; the return value of this method should give the list size of the value, which is normally 1 for non-lists (except for NOTHING where the size will be 0) and the number of the elements in the list for lists; this method will be reimplemented in other types where it may return other values.
int | size ()
| Returns zero; this method will be reimplemented in container types where it may return a non-zero value.
bool | strp ()
| Returns False; this method is reimplemented in other types and will return True if the given expression can be converted to a string.
bool | toBool ()
| Returns the boolean representation of the value; the default is False.
float | toFloat ()
| Returns the floating-point representation of the value; the default is 0.0.
int | toInt ()
| Returns the integer representation of the value; the default is 0.
string | toString ()
| Returns the string representation of the value; the default is an empty string.
string | type ()
| Returns the string type for the value.
int | typeCode ()
| Returns the type code for the value.
bool | val ()
| Returns False; this method is reimplemented in other types and will return True if the given expression has a value.

## Detailed Description

Methods in this pseudo-class can be executed on arbitrary precision number values.

## Member Function Documentation

string <number>::format | ( | string | fmt | ) |

Returns a string of a formatted number according to a format string.

Code Flags:
  CONSTANT

Parameters

  fmt

  the format string has the following format:
  <thousands_separator>`[`<decimal_separator><decimals>`]`
  where:
  - thousands_separator and decimal_separator are single ASCII characters defining the thousands and decimal separator characters respectively, and
  - decimals is a single digit defining how may decimals should appear after the decimal point

Returns
  a string of a formatted number according to a format string; if the format string does not follow the given format, then an empty string is returned

Example:
  my number $n = -48392093894.2349n;
  my string $nstr = $n.format(".,3"); # returns "-48.392.093.894,235"

See Also
  - <float>::format(string)
  - <int>::format(string)

Since
  Qore 0.8.6

bool <number>::infp | ( |  | ) |

Returns True if the number is infinity (+ or -)

Returns
  True if the number is infinity (+ or -)

Code Flags:
  CONSTANT

Example:
  if ($n.infp())
  print("the operation resulted in infinity\n");

Since
  Qore 0.8.6

bool <number>::intp | ( |  | ) |

Returns True because number values can be converted to integers.

Returns
  True because number values can be converted to integers

Code Flags:
  CONSTANT

Example:
  if ($n.intp())
  printf("%y: can be converted to an integer: %d\n", $n, int($n));

Since
  Qore 0.8.6

bool <number>::nanp | ( |  | ) |

Returns True if the number is NaN (not a number)

Returns
  True if the number is NaN (not a number)

Code Flags:
  CONSTANT

Example:
  if ($n.nanp())
  print("the operation resulted in NaN\n");

Since
  Qore 0.8.6

int <number>::prec | ( |  | ) |

Returns the precision of the current number.

Returns
  the precision of the current number

Code Flags:
  CONSTANT

Example:
  printf("precision: %d\n", $n.prec());

Since
  Qore 0.8.6

int <number>::sign | ( |  | ) |

Returns -1 if the number is negative, 0 if it is zero, or 1 if it is positive.

Returns
  -1 if the number is negative, 0 if it is zero, or 1 if it is positive

Code Flags:
  CONSTANT

Example:
  printf("sign: %d\n", $n.sign());

Since
  Qore 0.8.6

bool <number>::strp | ( |  | ) |

Returns True because number values can be converted to strings.

Returns
  True because number values can be converted to strings

Code Flags:
  CONSTANT

Example:
  if ($n.strp())
  printf("%y: can be converted to a string: '%s'\n", $n, string($n));

Since
  Qore 0.8.6

string <number>::toString | ( | int | fmt | ) |

Returns the string representation of the number according to the format argument.

Code Flags:
  CONSTANT

Parameters

  fmt | see Number Formatting Constants for possible values; note that this argument is interpreted as a bit field; if the format argument is not a valid format value (i.e. if none of the formatting bits are set in the argument) then NF_Default is assumed instead

Returns
  the string representation of the number according to the format argument

Since
  Qore 0.8.6

int <number>::typeCode | ( |  | ) |

Returns Qore::NT_NUMBER.

Returns
  Qore::NT_NUMBER

Code Flags:
  CONSTANT

Example:
  switch ($f.typeCode()) {
  case NT_NUMBER:
  printf("%y: is a number\n", $f);
  break;
  }

Since
  Qore 0.8.6

bool <number>::val | ( |  | ) |

Returns True if the number is non-zero, False if zero.

Returns
  True if the number is non-zero, False if zero

Code Flags:
  CONSTANT

Example:
  my bool $b = $f.val();

See Also
  - %perl-bool-eval
  - %strict-bool-eval

Since
  Qore 0.8.6