javascript - 如何将用逗号替换点的数字从字符串转换回十进制数字

标签 javascript jquery replace number-formatting parseint

我有一个输入字段,用户可以使用点或逗号输入十进制数字(示例:79,99 或 79.99)。当用户输入带有逗号的数字时,我将其替换为点(然后将该数字发送到远程服务器进行验证)。现在我想在用户使用 toFixed(2) 函数在页脚中输入数字后显示数字,以仅显示前两个十进制数字。我无法让它工作,因为使用 ParseFloat 将其转换回数字后,逗号后的 2 位小数消失了。

示例:

用户在输入字段中输入:79,99,然后将其设置到变量totalAmount中:

$('#amount-1').keyup(function() {

getRefundAmount(1); // This function calls the calcTotalAmount function

})

function calcTotalAmount() {
console.log('calcTotalAmount');

var totalAmount = 0;
var totalRefund = 0;
var rowAmount = 0;
var rowRefund = 0;

for(var i = 1; i < 4; i++ ) {
    rowAmount = parseFloat($('#amount-' + i).val());
    rowRefund = parseFloat($('#result-' + i).text());
    if(!isNaN(rowAmount)) {
        totalAmount += rowAmount;
        totalRefund += rowRefund;
    }
}

var toPay = totalAmount-totalRefund;
totalAmount = totalAmount.toString().replace(/\,/g, '.');
totalAmount = parseFloat(totalAmount).toFixed(2);


$('#footer-refund').text(totalRefund)
$('#footer-total').text(totalAmount)
if (totalAmount == '') {
    $('#footer-total').text("0.00");
}
}

页脚中显示的结果是:79.00 而不是 79.99

最佳答案

我在 jsfiddle 中尝试了你的代码,但在“.toFixed(2)”上出现错误 稍微改变一下之后我就可以防止这个错误。:

$(function() {
   var totalAmount = '79,99';
   totalAmount = parseFloat( totalAmount.toString().replace(/\,/g, '.'));
   totalAmount = totalAmount.toFixed(2);
   $('#footer-refund').text(totalAmount)
});

https://jsfiddle.net/jkrielaars/2gb59xss/1/

关于javascript - 如何将用逗号替换点的数字从字符串转换回十进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088372/

相关文章:

javascript - -moz-user-focus 等效于 Chrome

javascript - 如何获取网页加载时间

javascript - 如何在插件脚本之外调用 jquery 插件函数

javascript - jQuery 在找到特定文本字符串时添加属性

mysql - SQL 查找并用通配符替换

javascript - 从表的td获取id

javascript - 如何在 Etherpad 插件中捕获点击事件

jquery - JQgrid语法错误,custom_value函数的返回值无法识别的表达式

c# - 我可以在服务器上传递一个转换为 List<int> 的查询字符串吗?

java - 用图像替换文本 docx4j