| # Number |
| |
| `Napi::Number` class is a representation of the JavaScript `Number` object. The |
| `Napi::Number` class inherits its behavior from `Napi::Value` class |
| (for more info see [`Napi::Value`](value.md)) |
| |
| ## Methods |
| |
| ### Constructor |
| |
| Creates a new _empty_ instance of a `Napi::Number` object. |
| |
| ```cpp |
| Napi::Number(); |
| ``` |
| |
| Returns a new _empty_ `Napi::Number` object. |
| |
| ### Constructor |
| |
| Creates a new instance of a `Napi::Number` object. |
| |
| ```cpp |
| Napi::Number(napi_env env, napi_value value); |
| ``` |
| |
| - `[in] env`: The `napi_env` environment in which to construct the `Napi::Number` object. |
| - `[in] value`: The JavaScript value holding a number. |
| |
| Returns a non-empty `Napi::Number` object. |
| |
| ### New |
| |
| Creates a new instance of a `Napi::Number` object. |
| |
| ```cpp |
| Napi::Number Napi::Number::New(napi_env env, double value); |
| ``` |
| - `[in] env`: The `napi_env` environment in which to construct the `Napi::Number` object. |
| - `[in] value`: The C++ primitive from which to instantiate the `Napi::Number`. |
| |
| Creates a new instance of a `Napi::Number` object. |
| |
| ### Int32Value |
| |
| Converts a `Napi::Number` value to a `int32_t` primitive type. |
| |
| ```cpp |
| Napi::Number::Int32Value() const; |
| ``` |
| |
| Returns the `int32_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### Uint32Value |
| |
| Converts a `Napi::Number` value to a `uint32_t` primitive type. |
| |
| ```cpp |
| Napi::Number::Uint32Value() const; |
| ``` |
| |
| Returns the `uint32_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### Int64Value |
| |
| Converts a `Napi::Number` value to a `int64_t` primitive type. |
| |
| ```cpp |
| Napi::Number::Int64Value() const; |
| ``` |
| |
| Returns the `int64_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### FloatValue |
| |
| Converts a `Napi::Number` value to a `float` primitive type. |
| |
| ```cpp |
| Napi::Number::FloatValue() const; |
| ``` |
| |
| Returns the `float` primitive type of the corresponding `Napi::Number` object. |
| |
| ### DoubleValue |
| |
| Converts a `Napi::Number` value to a `double` primitive type. |
| |
| ```cpp |
| Napi::Number::DoubleValue() const; |
| ``` |
| |
| Returns the `double` primitive type of the corresponding `Napi::Number` object. |
| |
| ## Operators |
| |
| The `Napi::Number` class contains a set of operators to easily cast JavaScript |
| `Number` object to one of the following primitive types: |
| |
| - `int32_t` |
| - `uint32_t` |
| - `int64_t` |
| - `float` |
| - `double` |
| |
| ### operator int32_t |
| |
| Converts a `Napi::Number` value to a `int32_t` primitive. |
| |
| ```cpp |
| Napi::Number::operator int32_t() const; |
| ``` |
| |
| Returns the `int32_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### operator uint32_t |
| |
| Converts a `Napi::Number` value to a `uint32_t` primitive type. |
| |
| ```cpp |
| Napi::Number::operator uint32_t() const; |
| ``` |
| |
| Returns the `uint32_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### operator int64_t |
| |
| Converts a `Napi::Number` value to a `int64_t` primitive type. |
| |
| ```cpp |
| Napi::Number::operator int64_t() const; |
| ``` |
| |
| Returns the `int64_t` primitive type of the corresponding `Napi::Number` object. |
| |
| ### operator float |
| |
| Converts a `Napi::Number` value to a `float` primitive type. |
| |
| ```cpp |
| Napi::Number::operator float() const; |
| ``` |
| |
| Returns the `float` primitive type of the corresponding `Napi::Number` object. |
| |
| ### operator double |
| |
| Converts a `Napi::Number` value to a `double` primitive type. |
| |
| ```cpp |
| Napi::Number::operator double() const; |
| ``` |
| |
| Returns the `double` primitive type of the corresponding `Napi::Number` object. |
| |
| ### Example |
| |
| The following shows an example of casting a number to an `uint32_t` value. |
| |
| ```cpp |
| uint32_t operatorVal = Napi::Number::New(Env(), 10.0); // Number to unsigned 32 bit integer |
| // or |
| auto instanceVal = info[0].As<Napi::Number>().Uint32Value(); |
| ``` |