# parseInt() in JavaScript – How to Convert String to Decimal

Whenever you invoke parseInt(), the method does the following:

1. It parses (analyzes) its string argument.
2. It converts the string argument from its radix state to a decimal integer.

## Syntax of the `parseInt()` Method​

`parseInt()` accepts two arguments. Here is the syntax:

``parseInt("string", radix);``

## Argument 1: `string`​

A `string` argument is the first argument accepted by the `parseInt()` method. It is a required argument specifying the string value you want the computer to parse (analyze).

note
• Suppose the first argument is not a string. In that case, `parseInt()` will convert it using the ToString abstract operation.
• `parseInt()` ignores all leading and trailing whitespaces in the string argument.

## Argument 2: `radix`​

A `radix` is the second argument accepted by the `parseInt()` method. It is an optional argument specifying the string argument's base.

## Example 1: Convert Binary String to Decimal Integer​

``parseInt("1011001", 2);// The invocation above will return: 89``

Try it on StackBlitz

## Example 2: Convert Hexadecimal String to Decimal integer​

``parseInt("4fc", 16);// The invocation above will return: 1276``

Try it on StackBlitz

## Example 3: Convert Decimal String to Decimal Integer​

``parseInt("45", 10);// The invocation above will return: 45``

Try it on StackBlitz

Note that the snippet above is equivalent to:

``parseInt("45");// The invocation above will return: 45``

Try it on StackBlitz

Below are three essential pieces of info you need to know about the `radix` argument.

### Info 1: Always provide a `radix` argument​

It is best practice to specify the `radix` argument because it does not always default to base 10 (decimal).

For instance, suppose you omit the `radix` and begin the `string` argument with `"0X"` or `"0x"` (number zero followed by the upper-case or lower-case letter X). In that case, the computer will use `16` (hexadecimal) as the radix.

#### Example 1: Begin `parseInt()`'s string argument with `"Ox"` without providing a radix​

``parseInt("0x95");// The invocation above will return: 149``

Try it on StackBlitz

Note that the snippet above is equivalent to:

``parseInt("0x95", 16);// The invocation above will return: 149``

Try it on StackBlitz

#### Example 2: Begin `parseInt()`'s string argument with `"Ox"` while providing a radix​

``parseInt("0x95", 35);// The invocation above will return: 40745``

Try it on StackBlitz

### Info 2: Radix must be an integer between `2` and `36` inclusive​

The `radix` argument must be an integer between `2` and `36` inclusive. Otherwise, `parseInt()` will return `NaN` (Not a Number).

#### Example 1: `1` is an invalid radix value​

``parseInt("45", 1);// The invocation above will return: NaN``

Try it on CodePen

#### Example 2: `37` is an invalid radix value​

``parseInt("45", 37);// The invocation above will return: NaN``

Try it on CodePen

#### Example 3: `36` is a valid radix value​

``parseInt("45", 36);// The invocation above will return: 149``

Try it on StackBlitz

#### Example 4: `18` is a valid radix value​

``parseInt("45", 18);// The invocation above will return: 77``

Try it on StackBlitz

### Info 3: The first invalid character ends `parseInt()`'s analysis​

Suppose `parseInt()` encounters a character that is not a valid number in the specified `radix` numeral system. In such a case, the computer will do the following:

1. It will ignore all characters from the invalid one to the end of the string.
2. It will convert only the characters preceding the invalid one.

#### Example 1: The first character is not a binary numeral​

``parseInt("5111", 2);// The invocation above will return: NaN``

Try it on CodePen

The snippet above returned `NaN` because the string argument's first character (`5`) is an invalid binary numeral. Therefore, the computer ignored all the string's characters.

#### Example 2: The second character is not a binary numeral​

``parseInt("1511", 2);// The invocation above will return: 1``

Try it on StackBlitz

The snippet above returned `1` because the string argument's second character (`5`) is an invalid binary numeral. Therefore, the computer converted only the first character.

#### Example 3: The third character is not a binary numeral​

``parseInt("1151", 2);// The invocation above will return: 3``

Try it on StackBlitz

The snippet above returned `3` because the string argument's third character (`5`) is an invalid binary numeral. Therefore, the computer converted only the first and second characters.

#### Example 4: The fourth character is not a binary numeral​

``parseInt("1115", 2);// The invocation above will return: 7``

Try it on StackBlitz

The snippet above returned `7` because the string argument's fourth character (`5`) is an invalid binary numeral. Therefore, the computer converted only the first, second, and third characters.

## Overview​

The parseInt() global method parses and converts its string argument from its radix state to a decimal integer.