“显示”$xx.90“;而不是",$xx.9“;在Javascript中
当我在下面使用p=10000,r=15和n=60时“显示”$xx.90“;而不是",$xx.9“;在Javascript中,javascript,currency,Javascript,Currency,当我在下面使用p=10000,r=15和n=60时 var x = parseFloat((Math.round(r/12/100*p/(1-Math.pow(1+ +(r/12/100),-n))*100)/100).toFixed(2)); x=237.9而不是237.90 如果p、r和n的组合结果不是$xx.x”,那么代码段工作正常…即格式为小数点后2位 但为什么显示的是237.9而不是237.90 var x = parseFloat((Math.round(r/12/100*p/(1
var x = parseFloat((Math.round(r/12/100*p/(1-Math.pow(1+ +(r/12/100),-n))*100)/100).toFixed(2));
x=237.9
而不是237.90
如果p、r和n的组合结果不是$xx.x”,那么代码段工作正常…即格式为小数点后2位
但为什么显示的是237.9而不是237.90
var x = parseFloat((Math.round(r/12/100*p/(1-Math.pow(1+ +(r/12/100),-n))*100)/100)).toFixed(2);
p=10000,r=15,n=60;
var x=parseFloat((数学圆整(r/12/100*p/(1-Math.pow(1++(r/12/100),-n))*100)/100)).toFixed(2);
console.log(x)
当您调用number.toFixed(2)
时,您确实会得到一个带有两个十进制数字的数字的字符串表示:
var number = 237.9;
number.toFixed(2); // '237.90'
但是,当您在上面使用parseFloat
时,您会再次将其转换回一个数字;因为数字不包含要显示的零的数量信息,所以最后一个零会在打印时删除:
parseFloat(number.toFixed(2)); // 237.9
要避免这种情况,请不要将字符串转换回浮点数,而是将其用作字符串。嗨,Barmar--请您让我参考对同一问题的回答,好吗?谢谢,单击链接。@Barmar这里的问题不是使用
toFixed
(as N)的错误用法,它是将结果转换回浮点数。@Frxstrem我重新打开了问题,您应该将其转换为答案。