【问题标题】:My simple javascript code for parseFloat is ignoring the decimals我用于 parseFloat 的简单 javascript 代码忽略了小数
【发布时间】:2012-01-09 02:56:09
【问题描述】:

代码如下:

function updateCartSubtotal() {
    var subtotal = 0.00;
    $('span.item-subtotal-value').each(function () {
        subtotal = subtotal + parseFloat($(this).text()); //24.00 for example.
    });

    console.log(subtotal); // Logs: "144"
    $('span.cart-subtotal-value').text(subtotal); //Places: "144" in the .text().
    $('span.cart-subtotal').text(subtotal);
}

那我做错了什么?为什么这忽略了两个尾随零?

添加正确,只是不显示小数。

【问题讨论】:

    标签: javascript jquery parsefloat


    【解决方案1】:

    123123.00 是一样的。显示浮点数时没有理由显示不必要的数字。

    更重要的是,浮点数并不特定于货币 - 因此,如果要显示十进制数字,则必须更多

    如果要显示具有特定位数的数字,请使用subtotal.toFixed(2)。它为您提供了一个包含正确数量的小数位数的字符串:

    >>> 123.00
    123
    >>> (123.00).toFixed(2)
    "123.00"
    

    所以您的代码可能如下所示:

    $('span.cart-subtotal-value, span.cart-subtotal').text(subtotal.toFixed(2));
    

    【讨论】:

    • 在这种情况下,我需要显示这些数字。这是为了显示价格小计。所以需要两个额外的零。
    【解决方案2】:

    您可能对 PHPJS 中的 number_format 函数感兴趣,因为它还包括货币中常见的千位分隔符。

    【讨论】:

    • 为什么不在 JavaScript 中使用 already available 呢?当需要/想要千位分隔符时,您是对的 - 那么您链接的功能是个好主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多