---
name: "Mango::BSON::Number"
section: "3pm"
platform: "linux"
package: "libmango-perl"
version: "1.30-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mango::BSON::Number"
---

# Mango::BSON::Number(3pm)

Numerical types

## NAME

Mango::BSON::Number - Numerical types

## SYNOPSIS

```
  use Mango::BSON;
  use Mango::BSON::Number;
  my $number = Mango::BSON::Number->new(666, Mango::BSON::INT64);
  say $number;
```

## DESCRIPTION

Mango::BSON::Number is a container for numerical values with a strict type.

## METHODS

Mango::BSON::Number inherits all methods from Mojo::Base and implements the following new ones.

### new

```
  my $number = Mango::BSON::Number->new(3.14, Mango::BSON::DOUBLE);
```

Construct a new Mango::BSON::Number object. Croak if the value is incompatible with the given type. The 3 supported types are `"DOUBLE"`, `"INT32"` and `"INT64"`.

### TO\_JSON

```
  my $num = $obj->TO_JSON;
```

Return the numerical value.

### to\_string

```
  my $str = $num->to_string;
```

Return the value as a string.

### isa\_number

```
  my $flags = Mango::BSON::Number::isa_number(25);
```

Determine if the given variable is a number by looking at the internal flags of the perl scalar object.

Return `"undef"` if the value is not a number, or a non-null value otherwise. This value contains flags which can be used for finer analysis of the scalar.

### guess\_type

```
  my $mongo_type = Mango::BSON::Number::guess_type(25);
```

Chose which BSON type to use to encode the given numeric value. Possible types are: `"Mango::BSON::DOUBLE"`, `"Mango::BSON::INT32"` or `"Mango::BSON::INT64"`.

Return `"undef"` if the given value is not a number.

## OPERATORS

Mango::BSON::Time overloads the following operators.

### bool

```
  my $bool = !!$num;
```

### stringify

```
  my $str = "$num";
```

Alias for "to\_string".

## SEE ALSO

Mango, Mojolicious::Guides, \<http://mojolicio.us\>.
