Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
JavaScript-parseFloat强制2位小数作为数字_Javascript - Fatal编程技术网

JavaScript-parseFloat强制2位小数作为数字

JavaScript-parseFloat强制2位小数作为数字,javascript,Javascript,我意识到这个问题已经以某种形式或形式被问了很多次,但到目前为止,我读到的每一个答案都说use.toFixed(2),不幸的是,它将结果作为字符串返回 有些人建议解析两次,例如: parseFloat(parseFloat("29.6").toFixed(2)) 但结果是: 29.6 有没有办法强制parseFloat(或其他任何东西!)返回一个带有两个小数的数字类型?您可以使用: var your_value = 10.01 // replace with any value you des

我意识到这个问题已经以某种形式或形式被问了很多次,但到目前为止,我读到的每一个答案都说use.toFixed(2),不幸的是,它将结果作为字符串返回

有些人建议解析两次,例如:

parseFloat(parseFloat("29.6").toFixed(2))
但结果是:

29.6
有没有办法强制parseFloat(或其他任何东西!)返回一个带有两个小数的数字类型?

您可以使用:

var your_value = 10.01 // replace with any value you desire
parseFloat(Math.round(your_value * 100) / 100).toFixed(2);
例子

var j = parseFloat(Math.round(29.6 * 100) / 100).toFixed(2);
console.log(j);
//Output = >"29.60"
var j = parseFloat(Math.round(30.2100 * 100) / 100).toFixed(2);
console.log(j);
//Output =>"30.21"

实际数字的打印表示形式的小数部分不会有尾随的
0
。为什么小数后需要2位数字?它需要显示,
string
类型是合适的,如果需要在计算中使用,零是无关紧要的。这是因为
5.50000
5.5
,如果它是一个数字。如果您想在
0
之后使用
parseFloat
则不要使用
toFixed
的返回值,它是一个字符串(
“29.60”
)。我知道5.5和5.50是相等的,但我需要显示(带零)并用作数字,我也知道javascript的局限性,但希望有人有一个聪明的解决办法,这样我就可以避免显示字符串。这是一个远射:D。这并不能回答问题。您正在创建一个字符串,而OP想要一个数字。OP已经声明
toFixed
不做他们想要的事情。(JS也不做他们想做的事,这就是我们试图解释的。)我明白了。那么这个问题就有点奇怪了,因为我们尝试的29.60是基本的29.6转换成了数字类型。对不起,我真的没有读数字部分。是的,OP对数字的印刷表示有误解。