如何在Javascript中向十进制数添加小数点

如何在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

我试图将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.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
旁注:你不需要(或想要)to
parseFloat
已经是数字的东西。
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));