---
title: "Number"
description: "Static number related constants and functions."
canonical_url: "https://www.zeyos.com/zymba/ref/number"
markdown_url: "https://www.zeyos.com/ai/guide/zymba/ref/number.md"
section: "zymba-reference"
authority: "reference"
language: "en"
source_repository: "https://cloud.zeyos.com/__doc/zymbaref.json"
source_sha256: "05a361c6ddc32e74f4a6dc16fd06f218210ff1b7ce57f26ca1994bfffc407915"
---

# Number

## Number

```
object @Number() {
	EPSILON;
	INF;
	MINFLOAT;
	MININT;
	MAXFLOAT;
	MAXINT;
	NAN;
	compare(number $number1, number $number2): int {}
	countLeadingZeros(int $number): int {}
	equals(number $number1, number $number2): bool {}
	format(number $number, int $precision, string $point, string $separator): string {}
	fromBinary(string $binary): number {}
	fromHex(string $hex): number {}
	fromOctal(string $octal): number {}
	hasFractionalPart(number $number): bool {}
	hasIntegerPart(number $number): bool {}
	isBigEndian(): bool {}
	isEven(number $number): bool {}
	isFinite(number $number): bool {}
	isInfinite(number $number): bool {}
	isNaN(number $number): bool {}
	isNatural(number $number): bool {}
	isNegative(number $number): bool {}
	isOdd(number $number): bool {}
	isPositive(number $number): bool {}
	isPrime(number $number): bool {}
	isSafeInteger(number $number): bool {}
	isZero(number $number): bool {}
	max(...$numbers): number {}
	min(...$numbers): number {}
	normalize(number $number): number {}
	randomFloat(number $min, number $max): float {}
	randomInt(int $min, int $max): int {}
	roundDown(number $number, int $precision): float {}
	roundHalfDown(number $number, int $precision): float {}
	roundHalfToEven(number $number, int $precision): float {}
	roundHalfToOdd(number $number, int $precision): float {}
	roundHalfToInfinity(number $number, int $precision): float {}
	roundHalfToZero(number $number, int $precision): float {}
	roundHalfUp(number $number, int $precision): float {}
	roundToInfinity(number $number, int $precision): float {}
	roundToZero(number $number, int $precision): float {}
	roundUp(number $number, int $precision): float {}
	toBinary(int $decimal): string {}
	toExponential(number $number, int $digits): string {}
	toFixed(number $number, int $digits): string {}
	toHex(int $decimal): string {}
	toOctal(int $decimal): string {}
	toPrecision(number $number, int $digits): string {}
}
```

**Static number related constants and functions.**

## Functions


### `@Number.compare()`


Compares two numbers in a numeric manner.

```code
@Number.compare(number $number1, number $number2): int
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number1 | `number`  |  | 0 |
| number2 | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `int` | +1 |
| `int` | -1 |
| `int` | 0 |




### `@Number.countLeadingZeros()`


Counts the leading zeros of an unsigned integer number.

```code
@Number.countLeadingZeros(int $number): int
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `int` |  |




### `@Number.equals()`


Determines whether two numbers are equal, considering the machine epsilon.

```code
@Number.equals(number $number1, number $number2): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number1 | `number`  |  | 0 |
| number2 | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.format()`


Returns the formatted representation of a number with separated thousands, rounded with a specific precision.

```code
@Number.format(number $number, int $precision, string $point, string $separator): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |
| point | `string`  |  | "." |
| separator | `string`  |  | " " |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.fromBinary()`


Converts a binary string representation to its equivalent decimal number.

```code
@Number.fromBinary(string $binary): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| binary | `string`  |  | "" |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |




### `@Number.fromHex()`


Converts a hexadecimal string representation to its equivalent decimal number.

```code
@Number.fromHex(string $hex): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| hex | `string`  |  | "" |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |




### `@Number.fromOctal()`


Converts an octal string representation to its equivalent decimal number.

```code
@Number.fromOctal(string $octal): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| octal | `string`  |  | "" |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |




### `@Number.hasFractionalPart()`


Determines whether a number has a fractional part.

```code
@Number.hasFractionalPart(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.hasIntegerPart()`


Determines whether a number has an integer part.

```code
@Number.hasIntegerPart(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isBigEndian()`


Determines whether the machine is of a big-endian architecture.

```code
@Number.isBigEndian(): bool
```

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isEven()`


Determines whether a number is even.

```code
@Number.isEven(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isFinite()`


Determines whether a number is finite.

```code
@Number.isFinite(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isInfinite()`


Determines whether a number is infinite.

```code
@Number.isInfinite(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isNaN()`


Determines whether a number is "not a number" (NaN).

```code
@Number.isNaN(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isNatural()`


Determines whether a number is in the set of natural numbers including zero.

```code
@Number.isNatural(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isNegative()`


Determines whether a number is negative.

```code
@Number.isNegative(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isOdd()`


Determines whether a number is odd.

```code
@Number.isOdd(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isPositive()`


Determines whether a number is positive.

```code
@Number.isPositive(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isPrime()`


Determines whether a number is a prime number.

```code
@Number.isPrime(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isSafeInteger()`


Determines whether a number is a whole number within the safe integer range.

```code
@Number.isSafeInteger(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.isZero()`


Determines whether a number equals zero.

```code
@Number.isZero(number $number): bool
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `bool` |  |




### `@Number.max()`


Returns the greatest of numbers.

```code
@Number.max(variadic $numbers): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| numbers | `variadic`  |  | ... |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |
| `float` | NAN |
| `null` |  |




### `@Number.min()`


Returns the least of numbers.

```code
@Number.min(variadic $numbers): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| numbers | `variadic`  |  | ... |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |
| `float` | NAN |
| `null` |  |




### `@Number.normalize()`


Normalizes a number by stripping binary floating-point artifacts.

```code
@Number.normalize(number $number): number
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `number` |  |




### `@Number.randomFloat()`


Generates a floating-point number between two numbers from a random source.

```code
@Number.randomFloat(number $min, number $max): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| min | `number`  |  | 0 |
| max | `number`  |  | MAXINT |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |
| `float` | NAN |




### `@Number.randomInt()`


Generates an integer number between two numbers from a random source.

```code
@Number.randomInt(int $min, int $max): int
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| min | `int`  |  | 0 |
| max | `int`  |  | MAXINT |

##### Returns

| Type | Value |
| --- | ---  |
| `int` |  |




### `@Number.roundDown()`


Rounds a number downwards to negative infinity with a specific precision.

```code
@Number.roundDown(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfDown()`


Rounds a number downwards to nearest with a specific precision, ties towards negative infinity.

```code
@Number.roundHalfDown(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfToEven()`


Rounds a number symmetrically to nearest with a specific precision, ties to even.

```code
@Number.roundHalfToEven(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfToOdd()`


Rounds a number symmetrically to nearest with a specific precision, ties to odd.

```code
@Number.roundHalfToOdd(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfToInfinity()`


Rounds a number symmetrically to nearest with a specific precision, ties towards infinity.

```code
@Number.roundHalfToInfinity(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfToZero()`


Rounds a number symmetrically to nearest with a specific precision, ties towards zero.

```code
@Number.roundHalfToZero(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundHalfUp()`


Rounds a number upwards to nearest with a specific precision, ties towards positive infinity.

```code
@Number.roundHalfUp(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundToInfinity()`


Rounds a number symmetrically towards infinity with a specific precision.

```code
@Number.roundToInfinity(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundToZero()`


Rounds a number symmetrically towards zero with a specific precision.

```code
@Number.roundToZero(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.roundUp()`


Rounds a number upwards to positive infinity with a specific precision.

```code
@Number.roundUp(number $number, int $precision): float
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| precision | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `float` |  |




### `@Number.toBinary()`


Converts a decimal number to its equivalent binary string representation.

```code
@Number.toBinary(int $decimal): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| decimal | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.toExponential()`


Converts a number to its equivalent string representation in exponential notation with a fixed number of decimal digits.

```code
@Number.toExponential(number $number, int $digits): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| digits | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.toFixed()`


Converts a number to its equivalent string representation in fixed-point notation with a fixed number of decimal digits.

```code
@Number.toFixed(number $number, int $digits): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| digits | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.toHex()`


Converts a decimal number to its equivalent hexadecimal string representation.

```code
@Number.toHex(int $decimal): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| decimal | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.toOctal()`


Converts a decimal number to its equivalent octal string representation.

```code
@Number.toOctal(int $decimal): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| decimal | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |




### `@Number.toPrecision()`


Converts a number to its equivalent string representation in fixed-point or exponential notation with a maximum number of significant digits.

```code
@Number.toPrecision(number $number, int $digits): string
```

##### Parameters

| Name | Type | Value | Default |
| --- | --- | --- | --- |
| number | `number`  |  | 0 |
| digits | `int`  |  | 0 |

##### Returns

| Type | Value |
| --- | ---  |
| `string` |  |
