Мой простой код JavaScript для parseFloat игнорирует десятичные дроби - PullRequest
0 голосов
/ 09 января 2012

Вот код:

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

Так что я делаю не так? Почему это игнорирует два конечных нуля?

Добавляется правильно, просто не отображаются десятичные дроби.

Ответы [ 2 ]

3 голосов
/ 09 января 2012

123 и 123.00 одинаковы. При отображении числа с плавающей запятой нет причин отображать ненужные цифры.

Что более важно, числа с плавающей запятой не привязаны к валютам - поэтому, если будут отображаться десятичные цифры, должно быть много больше.

Если вы хотите отобразить номер с определенным количеством цифр, используйте subtotal.toFixed(2). Это дает вам строку с правильным количеством десятичных цифр:

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

Итак, ваш код может выглядеть так:

$('span.cart-subtotal-value, span.cart-subtotal').text(subtotal.toFixed(2));
0 голосов
/ 09 января 2012

Возможно, вас заинтересует функция number_format из PHPJS, поскольку она также включает тысячи разделителей, которые обычно встречаются в валютах.

...