JavaScript subtraction of two float values?

JavaScript floating-point arithmetic can produce unexpected results due to precision limitations. To correctly subtract two float values and get accurate results, use parseFloat() to ensure proper number conversion and toFixed() to control decimal precision.

The Problem with Float Subtraction

Direct subtraction of floats can yield imprecise results:

<!DOCTYPE html>
<html>
<body>
   <script>
      var result1 = 0.3 - 0.1;
      var result2 = 0.2 - 0.1;
      document.write("0.3 - 0.1 = " + result1 + "<br>");
      document.write("0.2 - 0.1 = " + result2);
   </script>
</body>
</html>

The parseFloat() Function

The parseFloat() method converts a string into a floating-point number. It returns NaN if the string is empty or starts with a non-numeric character.

Syntax

parseFloat(value)

The toFixed() Function

The toFixed() method formats a number with a specified number of decimal places using fixed-point notation.

Syntax

number.toFixed(digits)

Example: Basic Float Subtraction

Here's how to subtract two float values with proper precision handling:

<!DOCTYPE html>
<html>
<body>
   <h3>Click the button to subtract two float values</h3>
   <button onclick="subtractFloats()">Calculate</button>
   <p id="value1"></p>
   <p id="value2"></p>
   <p id="result"></p>
   
   <script>
      function subtractFloats() {
         var firstValue = parseFloat(14.15);
         var secondValue = parseFloat(12.10);
         
         document.getElementById("value1").innerHTML = "First Value: " + firstValue;
         document.getElementById("value2").innerHTML = "Second Value: " + secondValue;
         
         var difference = (firstValue - secondValue).toFixed(2);
         document.getElementById("result").innerHTML = "Result: " + difference;
      }
   </script>
</body>
</html>

Example: Using toFixed() for Precision Control

This example demonstrates controlling decimal precision during subtraction:

<!DOCTYPE html>
<html>
<body>
   <script>
      var total = 5.67;
      var discount = 2.34;
      
      document.write("Total: " + parseFloat(total).toFixed(2) + "<br>");
      document.write("Discount: " + parseFloat(discount).toFixed(2) + "<br>");
      
      var finalAmount = (parseFloat(total) - parseFloat(discount)).toFixed(2);
      document.write("Final Amount: " + finalAmount);
   </script>
</body>
</html>

Example: String to Float Conversion

When working with string inputs, parseFloat() ensures proper conversion before subtraction:

<!DOCTYPE html>
<html>
<body>
   <script>
      var strValue1 = "8.75";
      var strValue2 = "3.25";
      
      var num1 = parseFloat(strValue1);
      var num2 = parseFloat(strValue2);
      
      document.write("First Value: " + num1.toFixed(2) + "<br>");
      document.write("Second Value: " + num2.toFixed(2) + "<br>");
      
      var result = (num1 - num2).toFixed(2);
      document.write("Difference: " + result);
   </script>
</body>
</html>

Best Practices

For accurate float subtraction:

  • Use parseFloat() to convert strings to numbers
  • Apply toFixed() to the final result, not intermediate calculations
  • Consider using libraries like decimal.js for financial calculations requiring high precision

Conclusion

Use parseFloat() for proper number conversion and toFixed() for controlling decimal precision when subtracting floats. This approach ensures accurate results and prevents floating-point precision errors.

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

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements