Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Number documentation #356

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 139 additions & 8 deletions doc/number.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,160 @@
# Number

A Javascript number value.
`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::Nuber` object.
- `[in] value`: The `napi_value` which is a handle for a JavaScript `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::Nuber` object.
- `[in] value`: The `napi_value` which is a handle for a JavaScript `Number`.

Creates a new instance of a `Napi::Number` object.

### Int32Value

Converts a `Napi::Number` value to a `uint32_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::New(Napi::Env env, double value);
Napi::Number::FloatValue() const;
```
- `[in] env`: The `napi_env` Environment
- `[in] value`: The value the Javascript Number will contain

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::Number();
Napi::Number::DoubleValue() const;
```
returns a new empty Javascript Number

You can easily cast a Javascript number to one of:
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`

The following shows an example of casting a number to an uint32_t value.
### 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
Expand Down