[英]How to add decimal point to decimal number in Javascript
我试图将 0.10 添加到 23.50 但我得到 23.50.10 而不是 23.60
console.log((parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01).toFixed(2)));
这段代码生成小数点,如:0.04、0.29 等...
parseFloat((Math.random() * 0.90) + 0.01).toFixed(2)
您的.toFixed
在错误的括号中。
尝试
console.log((parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01)).toFixed(2));
你有.toFixed(2)
在错误的地方。 结果创建了一个字符串,然后将其连接起来。 它应该是这样的:
console.log((parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01)).toFixed(2));
整合评论:
正如Scott Sauyet 所说, toFixed
是在错误的地方。 您最终得到number + string
,它将数字转换为字符串并进行字符串连接。
正如我所说:这不是唯一的问题。 你不会parseFloat
已经是数字的东西。 这样做会将数字转换为字符串,然后将该字符串解析为数字,这充其量是毫无意义的。 :-)
正如Barmar 所说:进行计算,然后对结果使用toFixed
:
console.log((23.50 + (Math.random() * 0.10) + 0.01).toFixed(2));
此外, +
的优先级低于*
,因此您不需要那些内部括号(或0.10
上的最后一个0
):
console.log((23.50 + Math.random() * 0.1 + 0.01).toFixed(2));
...当然,如果您喜欢,您可以出于风格原因将它们包括在内。
这可能是一个错字,但您的 .toFixed() 位于错误的位置。 它将 yourparseFloat((Math.random() * 0.10) + 0.01) 转换为字符串,然后再添加到 parseFloat(23.50) 导致字符串连接。
执行添加,然后执行 .toFixed():
console.log((parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01)).toFixed(2));
或者要格外小心并使用 var:
var foo = parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01);
console.log(foo.toFixed(2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.