Javascript-toFixed()0.5问题
我有一个例子,我想把十进制数四舍五入2位小数。 目前,toFixed(2)运行良好,但是对于0.455,我希望得到0.45,而不是0.46 有什么快速的解决办法吗?我可以使用Lodash,如果它可以解决这个问题 例如,我想要以下内容 0.455>0.45 0.456>0.46Javascript-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)
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。我更新了我的问题