# Number

Number prototype extensions

## Import

``````_ <- fat.type.Number
``````

## Constructor

Name Signature Brief
Number (val: Any) Text to number or collection size

performs the conversion from text to number assuming decimal base

## Prototype members

Name Signature Brief
isEmpty (): Boolean Return true if zero
nonEmpty (): Boolean Return true if non-zero
size (): Number Return absolute value, same as math.abs
toText (): Text Return number as text
format (fmt: Text): Text Return number as formatted text

### Example

``````_ <- fat.type.Number
x = Number('52')  # number: 52
x.toText          # text: '52'
``````

#### format

The `format` method is used to convert numbers into strings in various ways. The basic structure of a format specifier is `%[flags][width][.precision][type]`. Here's what each of these components mean:

• `flags` are optional characters that control specific formatting behavior. For example, `0` can be used for zero-padding and `-` for left-justification.

• `width` is an integer that specifies the minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces or zeros, depending on the flag used.

• `precision` is an optional number following a `.` that specifies the number of digits to be printed after the decimal point.

• `type` is a character that specifies how the number should be represented. The common types are `f` (fixed-point notation), `e` (exponential notation), `g` (either fixed or exponential depending on the magnitude of the number), and `a` (hexadecimal floating-point notation).

Examples:

• `%5.f`: This will print the number with a total width of 5 characters, with no digits after the decimal point (because the precision is `f`, which means fixed-point, but no number follows the dot). It will be right-justified because no `-` flag is used.

• `%05.f`: Similar to the above, but because the `0` flag is used, the empty spaces will be filled with zeros.

• `%8.2f`: This will print the number with a total width of 8 characters, with 2 digits after the decimal point.

• `%-8.2f`: Similar to the above, but the number will be left-justified because of the `-` flag.

• `%.2e`: This will print the number using exponential notation, with 2 digits after the decimal point.

• `%.2a`: This will print the number using hexadecimal floating-point notation, with 2 digits after the hexadecimal point.

• `%.2g`: This will print the number in either fixed-point or exponential notation, depending on its magnitude, with a maximum of 2 significant digits.