TypeError: toFixed is not a function in JavaScript
Sometimes, when we use the toFixed() method, we may see the error TypeError: toFixed is not a function. This is because the toFixed() method is called on a value that is not a number.
Solution #
To solve that problem, convert the value to number using the Number() method.
<script> const myString = '12.8798'; const newNumber = Number(myString).toFixed(2); console.log(newNumber) </script>
Here is an example of how this error occurs.
<script> const myString = '12.8798'; console.log(myString.toFixed(2)); </script>
To fix this error, first we can convert the value to a number before calling the toFixed() method.
However, do you know how we can check whether a variable is a number or a string?
That's easy. we can use the typeof operator to check. Try the below example.
Example : uses of typeof operator. #
<script>
const num = '12345';
console.log("'12345' is a " + typeof num)
console.log("myVar is a " + typeof myVar)
console.log("9 is a " + typeof 9)
console.log(" [5,6,7] is a " + typeof [5,6,7])
</script>
Now come to the topic. To convert a string to a number, we can use the Number() method. E.g.
Example : fix the error toFixed is not a function. #
<script>
const myString = '12.8798';
const result = Number(myString).toFixed(2);
console.log(result)
</script>
Conclusion #
In this article, you have learned how to solve The "toFixed is not a function" error. This error occurs when the toFixed() method is called on a value that is not a number. To solve the error, we must convert the value to a number before calling the toFixed method.
If it encounters an invalid character, it returns the number represented up to that point, ignoring the invalid character and all characters that follow it.
<script>
const myString = '12.8h798';
const newNumber = parseFloat(myString).toFixed(2);
console.log(newNumber)
</script>
https://www.3schools.in/p/code-editor.html?q=PHNjcmlwdD4KICBjb25zdCBteVN0cmluZyA9ICcxMi44aDc5OCc7CiAgY29uc3QgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChteVN0cmluZykudG9GaXhlZCgyKTsKICBjb25zb2xlLmxvZyhuZXdOdW1iZXIpCjwvc2NyaXB0Pg==
This error occurs when you try to use the .toFixed() method on an object that doesn't support it, such as an string or boolean value. To understand why this happens and how we can fix it, let's look at an example:
Let's say we have a variable called myVar with the value of 25. We want to round this number up, so we write myVar.toFixed(2). However, myVar is not actually a Number object (it’s just an integer), you can see the error [TypeError:myVar.toFixed is not a function].
The solution here is simple - all you need to do in order for .tOfixed() work correctly with integers or booleans (or any other non-number type) is convert your data into actual numbers before using them in calculations like this one by using parseFloat() method. Example :
<script>
var myVar = 25;
parseFloat(myVar).toFixed(3);
</script>
<script>
let number = 50.5467;
let fixedNumber = parseFloat(number).toFixed(2);
</script>
Here are some examples of how to fix this error.
Example 1:-
var totalSum = Number(myVar).toFixed(3);
Example 2 :-
var totalSum = parseFloat(value).toFixed(2);
Hopefully, one of these solutions resolves the issue.