Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“显示”$xx.90“;而不是",$xx.9“;在Javascript中_Javascript_Currency - Fatal编程技术网

“显示”$xx.90“;而不是",$xx.9“;在Javascript中

“显示”$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

当我在下面使用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-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我重新打开了问题,您应该将其转换为答案。