获取元素值并添加它们(parseFloat似乎失败)

时间:2010-09-06 10:16:14

标签: javascript

我有上面的代码:

var element1=$("#element1").val(); 
//the element1 value is 12.60 
//html code for this element <input id="element1" value="12.60" />
element1=parseFloat(element1).toFixed(2);

var element2=$("#element2").text(); 
//the element2 value is 1.00 
//html code for this element <span id="element2">1.00</span>
element2=parseFloat(element2).toFixed(2);

var addthem=element1+element2;

console.log(addthem);

当然我希望看到13.60,但我得到12.601.00(添加字符串)。

我错过了什么吗?

3 个答案:

答案 0 :(得分:2)

使用Firebug进行快速检查,显示toFixed()方法在Firefox中返回一个字符串:

var f = 16.055;
console.log(typeof(f.toFixed(1)));

返回:string

因此,您应该将最后一行更改为:

var addthem = parseFloat(element1) + parseFloat(element2);

答案 1 :(得分:2)

parseFloat工作正常,但是您明确地获取了值的字符串版本(通过toFixed),因此+连接字符串。仅在您要将数字转换为字符串的位置使用toFixed(例如,输出到元素)。

答案 2 :(得分:2)

我相信

toFixed()会返回一个String作为其数据类型。 您在+中使用的var addthem=element1+element2;运算符用作字符串连接,因为+在JavaScript中重载。如果任何操作数是字符串,则返回字符串值。