我有一种情况,我想将小数点后两位小数舍入。
目前.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'

09-25 22:09