18c339a94Sopenharmony_ci# Number
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ci`Napi::Number` class is a representation of the JavaScript `Number` object. The
48c339a94Sopenharmony_ci`Napi::Number` class inherits its behavior from `Napi::Value` class
58c339a94Sopenharmony_ci(for more info see [`Napi::Value`](value.md))
68c339a94Sopenharmony_ci
78c339a94Sopenharmony_ci## Methods
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ci### Constructor
108c339a94Sopenharmony_ci
118c339a94Sopenharmony_ciCreates a new _empty_ instance of a `Napi::Number` object.
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_ci```cpp
148c339a94Sopenharmony_ciNapi::Number();
158c339a94Sopenharmony_ci```
168c339a94Sopenharmony_ci
178c339a94Sopenharmony_ciReturns a new _empty_ `Napi::Number` object.
188c339a94Sopenharmony_ci
198c339a94Sopenharmony_ci### Constructor
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ciCreates a new instance of a `Napi::Number` object.
228c339a94Sopenharmony_ci
238c339a94Sopenharmony_ci```cpp
248c339a94Sopenharmony_ciNapi::Number(napi_env env, napi_value value);
258c339a94Sopenharmony_ci```
268c339a94Sopenharmony_ci
278c339a94Sopenharmony_ci - `[in] env`: The `napi_env` environment in which to construct the `Napi::Number` object.
288c339a94Sopenharmony_ci - `[in] value`: The JavaScript value holding a number.
298c339a94Sopenharmony_ci
308c339a94Sopenharmony_ci Returns a non-empty `Napi::Number` object.
318c339a94Sopenharmony_ci
328c339a94Sopenharmony_ci ### New
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ci Creates a new instance of a `Napi::Number` object.
358c339a94Sopenharmony_ci
368c339a94Sopenharmony_ci```cpp
378c339a94Sopenharmony_ciNapi::Number Napi::Number::New(napi_env env, double value);
388c339a94Sopenharmony_ci```
398c339a94Sopenharmony_ci - `[in] env`: The `napi_env` environment in which to construct the `Napi::Number` object.
408c339a94Sopenharmony_ci - `[in] value`: The C++ primitive from which to instantiate the `Napi::Number`.
418c339a94Sopenharmony_ci
428c339a94Sopenharmony_ciCreates a new instance of a `Napi::Number` object.
438c339a94Sopenharmony_ci
448c339a94Sopenharmony_ci### Int32Value
458c339a94Sopenharmony_ci
468c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `int32_t` primitive type.
478c339a94Sopenharmony_ci
488c339a94Sopenharmony_ci```cpp
498c339a94Sopenharmony_ciNapi::Number::Int32Value() const;
508c339a94Sopenharmony_ci```
518c339a94Sopenharmony_ci
528c339a94Sopenharmony_ciReturns the `int32_t` primitive type of the corresponding `Napi::Number` object.
538c339a94Sopenharmony_ci
548c339a94Sopenharmony_ci### Uint32Value
558c339a94Sopenharmony_ci
568c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `uint32_t` primitive type.
578c339a94Sopenharmony_ci
588c339a94Sopenharmony_ci```cpp
598c339a94Sopenharmony_ciNapi::Number::Uint32Value() const;
608c339a94Sopenharmony_ci```
618c339a94Sopenharmony_ci
628c339a94Sopenharmony_ciReturns the `uint32_t` primitive type of the corresponding `Napi::Number` object.
638c339a94Sopenharmony_ci
648c339a94Sopenharmony_ci### Int64Value
658c339a94Sopenharmony_ci
668c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `int64_t` primitive type.
678c339a94Sopenharmony_ci
688c339a94Sopenharmony_ci```cpp
698c339a94Sopenharmony_ciNapi::Number::Int64Value() const;
708c339a94Sopenharmony_ci```
718c339a94Sopenharmony_ci
728c339a94Sopenharmony_ciReturns the `int64_t` primitive type of the corresponding `Napi::Number` object.
738c339a94Sopenharmony_ci
748c339a94Sopenharmony_ci### FloatValue
758c339a94Sopenharmony_ci
768c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `float` primitive type.
778c339a94Sopenharmony_ci
788c339a94Sopenharmony_ci```cpp
798c339a94Sopenharmony_ciNapi::Number::FloatValue() const;
808c339a94Sopenharmony_ci```
818c339a94Sopenharmony_ci
828c339a94Sopenharmony_ciReturns the `float` primitive type of the corresponding `Napi::Number` object.
838c339a94Sopenharmony_ci
848c339a94Sopenharmony_ci### DoubleValue
858c339a94Sopenharmony_ci
868c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `double` primitive type.
878c339a94Sopenharmony_ci
888c339a94Sopenharmony_ci```cpp
898c339a94Sopenharmony_ciNapi::Number::DoubleValue() const;
908c339a94Sopenharmony_ci```
918c339a94Sopenharmony_ci
928c339a94Sopenharmony_ciReturns the `double` primitive type of the corresponding `Napi::Number` object.
938c339a94Sopenharmony_ci
948c339a94Sopenharmony_ci## Operators
958c339a94Sopenharmony_ci
968c339a94Sopenharmony_ciThe `Napi::Number` class contains a set of operators to easily cast JavaScript
978c339a94Sopenharmony_ci`Number` object to one of the following primitive types:
988c339a94Sopenharmony_ci
998c339a94Sopenharmony_ci - `int32_t`
1008c339a94Sopenharmony_ci - `uint32_t`
1018c339a94Sopenharmony_ci - `int64_t`
1028c339a94Sopenharmony_ci - `float`
1038c339a94Sopenharmony_ci - `double`
1048c339a94Sopenharmony_ci
1058c339a94Sopenharmony_ci### operator int32_t
1068c339a94Sopenharmony_ci
1078c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `int32_t` primitive.
1088c339a94Sopenharmony_ci
1098c339a94Sopenharmony_ci```cpp
1108c339a94Sopenharmony_ciNapi::Number::operator int32_t() const;
1118c339a94Sopenharmony_ci```
1128c339a94Sopenharmony_ci
1138c339a94Sopenharmony_ciReturns the `int32_t` primitive type of the corresponding `Napi::Number` object.
1148c339a94Sopenharmony_ci
1158c339a94Sopenharmony_ci### operator uint32_t
1168c339a94Sopenharmony_ci
1178c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `uint32_t` primitive type.
1188c339a94Sopenharmony_ci
1198c339a94Sopenharmony_ci```cpp
1208c339a94Sopenharmony_ciNapi::Number::operator uint32_t() const;
1218c339a94Sopenharmony_ci```
1228c339a94Sopenharmony_ci
1238c339a94Sopenharmony_ciReturns the `uint32_t` primitive type of the corresponding `Napi::Number` object.
1248c339a94Sopenharmony_ci
1258c339a94Sopenharmony_ci### operator int64_t
1268c339a94Sopenharmony_ci
1278c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `int64_t` primitive type.
1288c339a94Sopenharmony_ci
1298c339a94Sopenharmony_ci```cpp
1308c339a94Sopenharmony_ciNapi::Number::operator int64_t() const;
1318c339a94Sopenharmony_ci```
1328c339a94Sopenharmony_ci
1338c339a94Sopenharmony_ciReturns the `int64_t` primitive type of the corresponding `Napi::Number` object.
1348c339a94Sopenharmony_ci
1358c339a94Sopenharmony_ci### operator float
1368c339a94Sopenharmony_ci
1378c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `float` primitive type.
1388c339a94Sopenharmony_ci
1398c339a94Sopenharmony_ci```cpp
1408c339a94Sopenharmony_ciNapi::Number::operator float() const;
1418c339a94Sopenharmony_ci```
1428c339a94Sopenharmony_ci
1438c339a94Sopenharmony_ciReturns the `float` primitive type of the corresponding `Napi::Number` object.
1448c339a94Sopenharmony_ci
1458c339a94Sopenharmony_ci### operator double
1468c339a94Sopenharmony_ci
1478c339a94Sopenharmony_ciConverts a `Napi::Number` value to a `double` primitive type.
1488c339a94Sopenharmony_ci
1498c339a94Sopenharmony_ci```cpp
1508c339a94Sopenharmony_ciNapi::Number::operator double() const;
1518c339a94Sopenharmony_ci```
1528c339a94Sopenharmony_ci
1538c339a94Sopenharmony_ciReturns the `double` primitive type of the corresponding `Napi::Number` object.
1548c339a94Sopenharmony_ci
1558c339a94Sopenharmony_ci### Example
1568c339a94Sopenharmony_ci
1578c339a94Sopenharmony_ciThe following shows an example of casting a number to an `uint32_t` value.
1588c339a94Sopenharmony_ci
1598c339a94Sopenharmony_ci```cpp
1608c339a94Sopenharmony_ciuint32_t operatorVal = Napi::Number::New(Env(), 10.0); // Number to unsigned 32 bit integer
1618c339a94Sopenharmony_ci// or
1628c339a94Sopenharmony_ciauto instanceVal = info[0].As<Napi::Number>().Uint32Value();
1638c339a94Sopenharmony_ci```
164