Javascript意外的parsefloat行为?

时间:2015-05-18 11:06:21

标签: javascript parsefloat tofixed

我知道之前已经问过这个问题而且我已经阅读了这个问题,但我仍然不清楚解决方案。我的尝试失败了。

<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?

此致

2 个答案:

答案 0 :(得分:1)

它没有读取不同的值。 之所以出现差异,是因为浮点数的存储精度如何。存储号码时,您无需担心。你将永远无法完全按照自己的意愿存储它。

显示数字时,您必须将其修剪为两位小数,这应该在读取时正确显示。您的问题只是数字的显示方式。

答案 1 :(得分:0)

我看到冗余,为什么parseFloat一个已经是Number的值?

只需parseFloat文字即可完成工作。

var str_subtotal = "12.348";
var num_subtotal = parseFloat(str_subtotal); // 12.348 (as number)
console.log(num_subtotal.toFixed(2));

请注意,要修复数字 ,请使用Math.round代替