结果格式右Jquery函数

时间:2013-04-17 18:18:28

标签: jquery jquery-calculation

我的代码快速而安静,但是某些计算结果的格式非常大​​,包括,获得的值不会进入计算。怎么做才能看到正确的结果?

我想计算结果(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);
});

3 个答案:

答案 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));
});

http://jsfiddle.net/GMjjc/

答案 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的分隔符。试试这个;

http://jsfiddle.net/M7JZu/8/

<强>的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,您可以在输出时再次将.转换回,(逗号)。