Why does Firebug say toFixed() is not a function?

匿名 (未验证) 提交于 2019-12-03 01:05:01

问题:

I am using jQuery 1.7.2 and jQuery UI 1.9.1. I am using the code below within a slider. (http://jqueryui.com/slider/)

I have a function that should test two values and depending on the difference between the two values reformat them (to the appropriate decimal place). If the difference is greater than 10, I will parse out the integer. If the difference is greater than 5, it should keep one decimal. Everything else, I will keep two decimals.

When I enter two values that have a difference that is ten or less, I use the toFixed() function. And, in Firebug, I see an error:

TypeError: Low.toFixed is not a function Low = Low.toFixed(2); 

Is there something simple that I am doing wrong?

Here is my code:

var Low = $SliderValFrom.val(), High = $SliderValTo.val();  // THE NUMBER IS VALID if (isNaN(Low) == false && isNaN(High) == false) {     Diff = High - Low; if (Diff > 10) {       Low = parseInt(Low);     High = parseInt(High);     } else if (Diff > 5) {        Low = Low.toFixed(1);        High = High.toFixed(1); } else {        Low = Low.toFixed(2);    High = High.toFixed(2); } } 

回答1:

toFixed isn't a method of non-numeric variable types. In other words, Low and High can't be fixed because when you get the value of something in Javascript, it automatically is set to a string type. Using parseFloat() (or parseInt() with a radix, if it's an integer) will allow you to convert different variable types to numbers which will enable the toFixed() function to work.

var Low  = parseFloat($SliderValFrom.val()),     High = parseFloat($SliderValTo.val()); 


回答2:

That is because Low is a string.

.toFixed() only works with a number.


Try doing:

Low = parseFloat(Low).toFixed(..); 


回答3:

Low = parseFloat(Low).toFixed(..); works :) learnt it the hard way..



回答4:

Low is a string.

.toFixed() only works with a number.

A simple way to overcome such problem is:

Low = (Low*1).toFixed(..); 

The multiplication by 1 forces to code to convert the string to number and doesn't change the value. JSFiddle code here.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!