我有一个输入字段,用户可以使用点或逗号输入十进制数字(示例: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)
});
关于javascript - 如何将用逗号替换点的数字从字符串转换回十进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088372/