How to convert a pixel value to a number value using JavaScript?

Converting pixel values to number values in JavaScript is a common task in web development when working with CSS properties, element positioning, or calculations. Pixel values like "100px" need to be converted to numeric values like 100 for mathematical operations.

When positioning and styling items on a web page, you often need to work with both pixel and numeric values. For instance, you might need to convert a pixel value such as "100px" to a number value like 100 to perform calculations or operations. This article explores different methods to convert pixel values to numbers using JavaScript.

Method 1: Using parseInt()

The parseInt() function parses a string and returns an integer. It automatically stops parsing when it encounters a non-numeric character, making it perfect for pixel values.

Example

<html>
<body>
   <p id="result1"></p>
   <p id="result2"></p>
   <script>
      let pixelValue = "100px";
      document.getElementById("result1").innerHTML = "Pixel value: " + pixelValue;
      let numberValue = parseInt(pixelValue);
      document.getElementById("result2").innerHTML = "Number value: " + numberValue;
   </script>
</body>
</html>
Pixel value: 100px
Number value: 100

Method 2: Using parseFloat()

The parseFloat() method is similar to parseInt() but preserves decimal values. This is useful when working with fractional pixel values like "100.5px".

Example

<html>
<body>
   <p id="result1"></p>
   <p id="result2"></p>
   <script>
      let pixelValue = "100.5px";
      document.getElementById("result1").innerHTML = "Pixel value: " + pixelValue;
      let numberValue = parseFloat(pixelValue);
      document.getElementById("result2").innerHTML = "Number value: " + numberValue;
   </script>
</body>
</html>
Pixel value: 100.5px
Number value: 100.5

Method 3: Using replace() with Number()

The replace() method removes the "px" unit from the string, then Number() converts the clean string to a number. This approach gives you more control over the conversion process.

Example

<html>
<body>
   <p id="result1"></p>
   <p id="result2"></p>
   <script>
      let pixelValue = "100px";
      document.getElementById("result1").innerHTML = "Pixel value: " + pixelValue;
      let numberValue = Number(pixelValue.replace("px", ""));
      document.getElementById("result2").innerHTML = "Number value: " + numberValue;
   </script>
</body>
</html>
Pixel value: 100px
Number value: 100

Method 4: Using Regular Expression

For more robust string matching, use a regular expression with replace(). This ensures only the "px" unit is removed and handles edge cases better.

Example

<html>
<body>
   <p id="result1"></p>
   <p id="result2"></p>
   <script>
      let pixelValue = "100px";
      document.getElementById("result1").innerHTML = "Pixel value: " + pixelValue;
      let numberValue = parseFloat(pixelValue.replace(/px$/g, ""));
      document.getElementById("result2").innerHTML = "Number value: " + numberValue;
   </script>
</body>
</html>
Pixel value: 100px
Number value: 100

Comparison of Methods

Method Handles Decimals? Automatic Unit Removal? Best For
parseInt() No Yes Integer pixel values
parseFloat() Yes Yes Decimal pixel values
replace() + Number() Yes No Explicit unit removal
Regular Expression Yes No Complex string patterns

Error Handling

Always validate your input to handle cases where the value might not contain "px" or might be invalid:

<html>
<body>
   <p id="result"></p>
   <script>
      function convertPixelToNumber(pixelValue) {
         let numberValue = parseFloat(pixelValue);
         return isNaN(numberValue) ? 0 : numberValue;
      }
      
      let validPixel = "100.5px";
      let invalidPixel = "invalid";
      
      document.getElementById("result").innerHTML = 
         "Valid: " + convertPixelToNumber(validPixel) + "<br>" +
         "Invalid: " + convertPixelToNumber(invalidPixel);
   </script>
</body>
</html>
Valid: 100.5
Invalid: 0

Conclusion

Use parseFloat() for most pixel-to-number conversions as it handles both integers and decimals automatically. For more control over the conversion process, combine replace() with Number() and always include error handling for robust applications.

Updated on: 2026-03-15T23:19:00+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements