You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					164 lines
				
				3.6 KiB
			
		
		
			
		
	
	
					164 lines
				
				3.6 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# 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.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Contructor
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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();
							 | 
						||
| 
								 | 
							
								```
							 |