Skip to main content

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

Important Stuff to Know about the Radix Argument

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.