所以我有一个脚本抓取<tr>
并迭代它以使用jquery获取我需要的所有变量。其中一个是价格,其中td的文本是79.00所以我抓住它并将其存储为var price。我现在需要将其添加到我决定的另一个数字,让我们说14.95。我认为可行的是
var val1 = parseInt(price);
val1 = val1.toFixed(2);
var sub = val1 + 14.95;
但是输出79.0014.95它只是将它们连接起来,好像它是一个字符串。这是我正在使用的代码。
$("#phrases tbody tr").live('click', function() {
var nTds = $('td', this);
var phrase = $(nTds[0]).text();
var phrase_id = $(nTds[0]).attr("name");
var searches = $(nTds[4]).text();
var price = $(nTds[5]).text(); //is 79.00
var val1 = parseInt(price);
val1 = val1.toFixed(2);
var val2 = 14.95;
val2 = val2.toFixed(2);
var sub = val1 + val2;
现在当sub输出时它是79.0014.95。任何帮助将不胜感激,因为这让我疯了。谢谢。
答案 0 :(得分:2)
toFixed()
返回一个字符串。 "string" + anything
等于"stringanything"
。
var a = (123).toFixed(2);
var b = a + 123;
console.log(b); // "123.00123"
var c = 123;
var d = c + 123;
console.log(d.toFixed(2)); // "246.00"
之后将数字添加到一起,而不是之前。
答案 1 :(得分:1)
Number.toFixed()
方法格式化数字并返回其字符串表示。
当至少一个操作数是字符串时,JavaScript的+
运算符会进行连接。
执行完所有算术后,您应该进行格式化。
答案 2 :(得分:1)
如果任一操作数是字符串,+
运算符将执行字符串连接。 toFixed()
方法返回数字的字符串表示。因此,你得到的结果。
您需要先进行计算,然后在最终结果上调用toFixed()
。
另外,为什么在处理可能(大概)小数点后有0以外的价格时使用parseInt()
?您可能需要parseFloat()
,或者您可以使用一元+运算符(var n = (+"123.32");
)将字符串转换为数字。
答案 3 :(得分:0)
toFixed()
返回一个字符串。
进行数学运算后进行填充。