Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 小数点后最多2位_Javascript_Math_Tofixed - Fatal编程技术网

Javascript 小数点后最多2位

Javascript 小数点后最多2位,javascript,math,tofixed,Javascript,Math,Tofixed,使用.toFixed(2)我总是得到2个小数,即使数字是2.00 我能换成“2”吗 例如: 2.00=>2 2.05=>2.05 2.053435=>2.05 2.057435=>2.06 您可以使用Math.round(): var编号=2.005; 风险值2=2.558934; 变量编号3=1.005; 函数舍入(值,小数){ 返回数字(数学四舍五入(值+'e'+小数)+'e-'+小数); } console.log(圆形(数字,2))/>2.01 console.log(整数(2,2)

使用
.toFixed(2)
我总是得到2个小数,即使数字是2.00

我能换成“2”吗

例如:

  • 2.00=>2
  • 2.05=>2.05
  • 2.053435=>2.05
  • 2.057435=>2.06

您可以使用
Math.round()

var编号=2.005;
风险值2=2.558934;
变量编号3=1.005;
函数舍入(值,小数){
返回数字(数学四舍五入(值+'e'+小数)+'e-'+小数);
}
console.log(圆形(数字,2))/>2.01
console.log(整数(2,2))/>2.56
console.log(圆形(数字3,2))/>1.01
函数,用于FixedifNecessary(值,dp){
return+parseFloat(值).toFixed(dp);
}
console.log(toFixedIfNecessary(1.999,2));//2.
console.log(toFixedIfNecessary(2,2));//2.
console.log(toFixedIfNecessary(2.1,2));//2.1
console.log(toFixedIfNecessary(2.05,2));//2.05
console.log(toFixedIfNecessary(2.05342,2));//2.05
console.log(toFixedIfNecessary(2.04999,2));//2.05
console.log(toFixedIfNecessary(2.04499,2));//2.04
console.log(toFixedIfNecessary(2.053435,2));//2.05

console.log(toFixedIfNecessary(2.057435,2));//2.06
可能重复,但这也表明我使用了toFixed(2),但它的工作方式与我希望使用投票最多的答案中的脚本不一样?这里是
Math.round(1.005*100)/100
返回
1
,它应该返回1,因为我们需要最多2位小数,但是如果输入1.05,它将返回1.05,或者如果输入1.051264,它将返回1。05@NevenIgnjic
1.005
到2dp是
1.01
不是
1
这取决于,当输入值介于需要捕捉的值之间的一半时,我遇到了两种舍入类型。1.捕捉到较高或较低的值2。捕捉到最接近的偶数或奇数,所以这一切都取决于什么样的软件在计算这个,但对OP来说,这些都不重要。这是什么剑?有人能解释一下+parseFloat为什么有这种行为吗?@homebrand the+将toFixed的字符串输出转换回float。在控制台中尝试
+“2.00”