jQuery中的千位分隔符导致parseFloat错误解释数字

时间:2015-06-12 10:38:05

标签: javascript jquery parsefloat

我使用.作为千位分隔符。 所以字符串128.814应该被理解为“一万二千八百八十四十四”。

当我将其添加到数字900时,我希望答案为129714(显示为129.714)。 但是,因为javascript将千位分隔符作为小数点,所以它给了我一个不理想的结果。

function addTotalPrice(item){
    var priceItem = parseFloat( $(item).find('.price').text() );
    var priceTotal = parseFloat( $('.label-price span').text() );

    var result = (priceTotal + priceItem);
    $('.label-price span').text( result.toFixed(3) );
}

如何告诉jQuery / Javascript将.中的128.814解释为千位分隔符而不是小数点?

1 个答案:

答案 0 :(得分:0)

  

我如何告诉jQuery / Javascript解释。在128.814作为   千位分隔符而不是小数点?

最简单的方法是删除它。

删除后,即使没有逗号,也会自动解释为千位值。然后,手动设置格式,如How to print a number with commas as thousands separators in JavaScript

function addTotalPrice(item){
    var priceItem = parseFloat( $(item).find('.price').text().replace('.','') );
    var priceTotal = parseFloat( $('.label-price span').text().replace('.','') );

    var result = (priceTotal + priceItem);
    $('.label-price span').text( result.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); );
}



var priceItem = parseFloat('900'.replace('.', ''));
var priceTotal = parseFloat('128.814'.replace('.', ''));

var result = (priceTotal + priceItem);
var fixedResult = result.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
document.write(fixedResult);