在javascript中使用toFixed(2)会产生不希望的结果

Dam*_*ien 2 javascript parsefloat tofixed

我这样做:

var refundAmount = parseFloat($('#refundAmount2').val().replace('$',''));
var refundReceived = $('#refundReceived');
var remainderAmount = refundAmount-parseFloat(refundReceived.val().replace('$',''));

alert(parseInt(remainderAmount).toFixed(2));
Run Code Online (Sandbox Code Playgroud)

无论我做什么,结果总是以2位小数结尾为".00".因此,如果第一个数字是200.12而第二个数字是100.08,它应该以100.04警告我,但我得到100.00.关于为什么会发生这种情况的任何想法?谢谢大家!

Ant*_*ony 6

您曾经parseInt将该数字转换为整数,然后用于toFixed(2)将其转换为带有2位小数的数字.向整数添加2个小数位将始终产生.00.

尝试

alert(remainderAmount.toFixed(2));
Run Code Online (Sandbox Code Playgroud)

DEMO.