Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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-toFixed()0.5问题_Javascript - Fatal编程技术网

Javascript-toFixed()0.5问题

Javascript-toFixed()0.5问题,javascript,Javascript,我有一个例子,我想把十进制数四舍五入2位小数。 目前,toFixed(2)运行良好,但是对于0.455,我希望得到0.45,而不是0.46 有什么快速的解决办法吗?我可以使用Lodash,如果它可以解决这个问题 例如,我想要以下内容 0.455>0.45 0.456>0.46 0.4549>0.45乘以100,四舍五入到地板,除以100,格式化为toFixed function roundDownToFixed2(v) { return (Math.floor(v * 100) / 100)

我有一个例子,我想把十进制数四舍五入2位小数。 目前,toFixed(2)运行良好,但是对于0.455,我希望得到0.45,而不是0.46

有什么快速的解决办法吗?我可以使用Lodash,如果它可以解决这个问题

例如,我想要以下内容

0.455>0.45

0.456>0.46


0.4549>0.45

乘以100,四舍五入到地板,除以100,格式化为toFixed

function roundDownToFixed2(v) {
  return (Math.floor(v * 100) / 100).toFixed(2);
}
> roundDownToFixed2(0.455)
'0.45'
更通用的版本是

function roundDownToFixed(v, d=2) {
  const mul = Math.pow(10, d);
  return (Math.floor(v * mul) / mul).toFixed(d);
}
> roundDownToFixed(0.455, 2)
'0.45'
> roundDownToFixed(0.4555, 3)
'0.455'

乘以100,四舍五入到地板,除以100,格式化为toFixed

function roundDownToFixed2(v) {
  return (Math.floor(v * 100) / 100).toFixed(2);
}
> roundDownToFixed2(0.455)
'0.45'
更通用的版本是

function roundDownToFixed(v, d=2) {
  const mul = Math.pow(10, d);
  return (Math.floor(v * mul) / mul).toFixed(d);
}
> roundDownToFixed(0.455, 2)
'0.45'
> roundDownToFixed(0.4555, 3)
'0.455'
这将有助于:

函数roundDecimal(a,k){
设K=Math.pow(10,K);
返回数学四舍五入(a*K)/K;
}
因此
roundDecimal(0.455,2)
将是
0.46

这将有助于:

函数roundDecimal(a,k){
设K=Math.pow(10,K);
返回数学四舍五入(a*K)/K;
}

所以
roundDecimal(0.455,2)
将是
0.46

只要你能使用
Math.floor(0.455*100)/100对于0.456,它仍然显示0.455U可以使用
数学地板(0.455*100)/100对于0.456,仍然显示为0.455。建议将Math.floor()更改为Math.trunc(),对于0.456,仍然显示为0.45。我更新了我的问题,建议将Math.floor()改为Math.trunc(),改为0.456,但仍然显示为0.45。我更新了我的问题