Javascript 意外的 parsefloat 行为?
Javascript unexpected parsefloat behavior?
我知道之前有人问过这个问题,我已经阅读了有关该主题的内容,但我仍然不清楚解决方案。我的尝试失败了。
<div class="subtotal" data-content="€">30.50</div>
但对于以下 jquery js,它显示为 30.509
test = parseFloat($('.subtotal').text());//reads 30.509
我试过了
test = parseFloat(Number($('.subtotal').text()).toFixed(2));//gives NaN
如何确保 javascript 读取的小计为 30.50 而不是 30.509?
此致,
它没有读取不同的值。
不同之处在于浮点数存储在内存中的精度。当您存储号码时,您无需担心这一点。您将永远无法完全按照自己的意愿存储它。
显示数字时,您必须 trim 保留两位小数,以便在阅读时正确显示。您的问题只是数字的显示方式。
我看到了冗余,为什么 parseFloat 一个已经是 Number
的值?
只需 parseFloat
文本即可完成工作。
var str_subtotal = "12.348";
var num_subtotal = parseFloat(str_subtotal); // 12.348 (as number)
console.log(num_subtotal.toFixed(2));
请注意,toFixed 不会 舍入数字,而是使用 Math.round
我知道之前有人问过这个问题,我已经阅读了有关该主题的内容,但我仍然不清楚解决方案。我的尝试失败了。
<div class="subtotal" data-content="€">30.50</div>
但对于以下 jquery js,它显示为 30.509
test = parseFloat($('.subtotal').text());//reads 30.509
我试过了
test = parseFloat(Number($('.subtotal').text()).toFixed(2));//gives NaN
如何确保 javascript 读取的小计为 30.50 而不是 30.509?
此致,
它没有读取不同的值。 不同之处在于浮点数存储在内存中的精度。当您存储号码时,您无需担心这一点。您将永远无法完全按照自己的意愿存储它。
显示数字时,您必须 trim 保留两位小数,以便在阅读时正确显示。您的问题只是数字的显示方式。
我看到了冗余,为什么 parseFloat 一个已经是 Number
的值?
只需 parseFloat
文本即可完成工作。
var str_subtotal = "12.348";
var num_subtotal = parseFloat(str_subtotal); // 12.348 (as number)
console.log(num_subtotal.toFixed(2));
请注意,toFixed 不会 舍入数字,而是使用 Math.round