---
name: "up.util.parseNumber"
area: "API"
kind: "JavaScript function"
parent: "up.util module"
visibility: "experimental"
url: "https://unpoly.com/api/up.util.parseNumber"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [up.util module](https://unpoly.com/api/up.util.md)</nav>

# up.util.parseNumber(value)

**This feature is experimental**. Please [share](https://github.com/unpoly/unpoly/discussions) your experiences so we know what to keep or change.

Parses the given value and returns a number.

<nav aria-label="Contents">

#### Contents

- [Example](#example)
- [Supported values](#supported-values)
- [Parameters](#parameters)
- [Return value](#return-value)

</nav>

## Example {#example}

```js
up.util.parseNumber("123.4") // result: 123.4
```

## Supported values {#supported-values}

The list of supported notations differs slightly from [`parseFloat()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat) and [`Number()`](https://www.w3schools.com/jsref/jsref_number.asp):

| Supported argument | Return value |  |
| --- | --- | --- |
| ✔️ Zero | `"0"` | `0` |
| ✔️ Positive integer | `"123"` | `123` |
| ✔️ Negative value | `"-5"` | `-5` |
| ✔️ Floating point number | `"4.6"` | `4.6` |
| ✔️ Numeric separators | `"1_000_000"` | `1000000` |
| ✔️ Already a number | `10` | `10` |
| ✔️ Negative zero | `"-0"` | `-0` |

If the argument cannot be parsed, it returns `undefined`. This function never throws an error and never returns `NaN`.

| Unsupported argument | Return value |  |
| --- | --- | --- |
| ❌ Unparseable format | `"foo"` | `undefined` |
| ❌ Missing argument | `undefined` | `undefined` |
| ❌ Infinity | `"Infinity"` | `undefined` |
| ❌ Exponential notation | `"314e-2"` | `undefined` |
| ❌ Unparseable type | `{ foo: 3 }` | `undefined` |

---

## Parameters {#parameters}

### value {#value}

(required)

The value to parse, usually a string.

If a number is given, it is returned without further processing.

Type: string | number

---

## Return value {#return-value}

The parsed number value.

If the argument cannot be parsed, `undefined` is returned.

Type: number | undefined

