我的代码快速而安静,但是某些计算结果的格式非常大,包括,获得的值不会进入计算。怎么做才能看到正确的结果?
我想计算结果(3 * 2215.40)是3 646.20而非3.6450000000000005。
如何?
代码 - http://jsfiddle.net/bruno_aw/M7JZu/
$(".calc_cub").on("keyup", ".qtd", function(){
var valorCub = $("#CUB").text();
var number = parseFloat(valorCub);
var qtd = +$(this).val();
$(".total").text(number * qtd).val().toFixed(2);
});
答案 0 :(得分:1)
您需要先从文本中获取数字。在.total上设置文本后,您也在调用.val() - 您需要做的只是$(".total").text((number * qtd).toFixed(2))
;
$(".calc_cub").on("keyup", ".qtd", function () {
var valorCub = $("#CUB").text().split(' '); // returns ["Valor", "CUB", "R$", "1,215.40"]
var number = parseFloat(valorCub[valorCub.length - 1].replace(',','')); // get last one in array and remove comma
var qtd = +$(this).val();
$(".total").text((number * qtd).toFixed(2));
});
答案 1 :(得分:0)
尝试此更改:
$(".total").text((number * qtd).toFixed(2));
请注意,在你的小提琴中,CUB
div有文字和数字。 parseFloat()
在数字位于字符串前面时有效。因此,您需要安排事情,以便隔离号码。你可以这样做:
<div>Some text is here <span id="CUB">1234.50</span></div>
答案 2 :(得分:0)
您混合了文本块的字符串和float的分隔符。试试这个;
<强>的JavaScript 强>
$(".calc_cub").on("keyup", ".qtd", function () {
var valorCub = $("#CUB").text();
valorCub = parseFloat(valorCub.split('$ ')[1].replace('.', '').replace(',', '.'));
var qtd = $(this).val();
$(".total").text(valorCub * qtd);
});
对于输出sakes,您可以在输出时再次将.
转换回,
(逗号)。