Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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_Javascript - Fatal编程技术网

如何将数字四舍五入到多个小数位。Javascript

如何将数字四舍五入到多个小数位。Javascript,javascript,Javascript,我正在尝试创建一个函数,它可以接受一个数字和小数位数,并将数字四舍五入到将要给出的精确小数位数。 我正在使用parseInt(prompt())来给出数字和小数位数 比如说, round(3.141519, 2) -> 3.14 round(5986.32456, 4) -> 5986.3246 有人能帮我吗?你可以用toFixed 检查以下各项 console.log(3.141519.toFixed(2)) console.log(5986.32456.toFixed(4))

我正在尝试创建一个函数,它可以接受一个数字和小数位数,并将数字四舍五入到将要给出的精确小数位数。 我正在使用
parseInt(prompt())
来给出数字和小数位数

比如说,

round(3.141519, 2) -> 3.14
round(5986.32456, 4) -> 5986.3246
有人能帮我吗?

你可以用toFixed

检查以下各项

console.log(3.141519.toFixed(2))

console.log(5986.32456.toFixed(4))
这里有一个短函数,允许您指定精度并返回一个数字:

function round(number, places) {
   number = parseFloat(number, 10);
   var e  = parseInt(places || 2, 10);
   var m = Math.pow(10, e);
   return Math.floor(number * m) / m;
}
或略短的ES6功能:

const round = (number, places=2) => {
   const m = Math.pow(10, places);
   return Math.floor(number * m) / m;
}

谷歌:你不能用Math.round吗?注释可能重复的可能重复,
toFixed
返回一个字符串。我使用了第一个解决方案,当我运行函数时,它会给我NaN。它不应该打印出包含我想要的小数位数的四舍五入数字吗?@Leo你不是在传递数字吗
round(3.1456,3)
对我有效…我更新了我的第一个解决方案,使用
parseFloat
parseInt
,以防您通过它。我想我的解决方案有问题。。我不知道是什么。