如何在Javascript中向十进制数添加小数点
我试图将0.10添加到23.50,但我得到的是23.50.10,而不是23.60 我的代码 这段代码生成小数点,如:0.04、0.29等如何在Javascript中向十进制数添加小数点,javascript,Javascript,我试图将0.10添加到23.50,但我得到的是23.50.10,而不是23.60 我的代码 这段代码生成小数点,如:0.04、0.29等 parseFloat((Math.random() * 0.90) + 0.01).toFixed(2) 您的.toFixed位于错误的括号中 试一试 您的.toFixed位于错误的括号中 试一试 您将.toFixed(2)放在了错误的位置。其结果将创建一个字符串,然后该字符串将被连接。应该是这样的: console.log((parseFloat(23.5
parseFloat((Math.random() * 0.90) + 0.01).toFixed(2)
您的
.toFixed
位于错误的括号中
试一试
您的
.toFixed
位于错误的括号中
试一试
您将.toFixed(2)
放在了错误的位置。其结果将创建一个字符串,然后该字符串将被连接。应该是这样的:
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));
综合评论: 因为,
toFixed
位于错误的位置。最后是number+string
,它将数字转换为字符串并进行字符串连接
As:这不是唯一的问题。你不需要对已经是一个数字的东西进行分析。这样做会将数字转换为字符串,然后将该字符串解析为数字,这充其量是没有意义的。:-)
As:进行计算,然后对结果使用toFixed
:
console.log((23.50 + (Math.random() * 0.10) + 0.01).toFixed(2));
此外,+
的优先级低于*
,因此您不需要这些内部参数(或0.10
上的最后一个0
):
…当然,如果您愿意,也可以出于风格原因将其包括在内。合并注释: 因为,
toFixed
位于错误的位置。最后是number+string
,它将数字转换为字符串并进行字符串连接
As:这不是唯一的问题。你不需要对已经是一个数字的东西进行分析。这样做会将数字转换为字符串,然后将该字符串解析为数字,这充其量是没有意义的。:-)
As:进行计算,然后对结果使用toFixed
:
console.log((23.50 + (Math.random() * 0.10) + 0.01).toFixed(2));
此外,+
的优先级低于*
,因此您不需要这些内部参数(或0.10
上的最后一个0
):
…当然,如果您愿意,也可以出于风格原因将其包括在内。可能是输入错误,但您的.toFixed()位置不正确。它将您的parseFloat((Math.random()*0.10)+0.01)转换为字符串,然后再添加到parseFloat(23.50),从而产生字符串连接 执行添加,然后执行.toFixed(): 或者格外小心并使用var:
var foo = parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01);
console.log(foo.toFixed(2));
可能是输入错误,但您的.toFixed()位于错误的位置。它将您的parseFloat((Math.random()*0.10)+0.01)转换为字符串,然后再添加到parseFloat(23.50),从而产生字符串连接 执行添加,然后执行.toFixed(): 或者格外小心并使用var:
var foo = parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01);
console.log(foo.toFixed(2));
旁注:您不需要(或不想)解析已经是数字的东西。
toFixed(2)
返回一个字符串。把它加到一个数字上就变成了字符串连接。首先做所有的算术运算,当你想显示它时,在末尾使用toFixed(2)
。而不是parseFloat((Math.random()*0.10)+0.01)
你的意思是Math.floor(Math.random()*10+1)/100
旁注:你不需要(或想要)toparseFloat
已经是数字的东西。toFixed(2)
返回一个字符串。将其添加到一个数字中就变成了字符串连接。首先要做所有的算术运算,然后在想要显示它时在末尾使用toFixed(2)
。而不是parseFloat((Math.random()*0.10)+0.01)
你的意思是Math.floor(Math.random()*10+1)/100
如果我想问一个需要建议的问题。如何在stackoverflow中提问?您可能希望查看,以了解该问题是否与此站点的主题有关,否则我建议您找到合适的stackexchange站点。如果我想问一个我需要建议的问题。如何在stackoverflow中提问?您可能希望查看,以了解该问题是否与此站点的主题有关,否则我建议您找到合适的stackexchange站点。
var foo = parseFloat(23.50) + parseFloat((Math.random() * 0.10) + 0.01);
console.log(foo.toFixed(2));