嗨,我需要在模拟的round()功能,把0.5到0。例如0.4 -〉0 ;9.5 -〉9 ; 10.6 -〉11
我试着做
var height = Math.round(width / firstNum * thecondNum).toInt()
var e = height.toDouble()
var roundedHalfDown = e.toBigDecimal().setScale(0, ROUND_HALF_DOWN).toDouble().toInt()
return ("$width x $roundedHalfDown").replace(" ","")
}
我也试过这个
var height = Math.round(width / firstNum * thecondNum).toInt()
var e = height.toDouble()
var r = Math.floor(e)
if ((height % 10) == 5){
r -= 1
return ("$width x $r").replace(" ","")
}
else return ("$width x $height").replace(" ","")
}
测试显示4:3,width = 1457预期:〈1457 x109 [2]〉,但实际上:〈1457 x109 [3]〉
2条答案
按热度按时间44u64gxh1#
您通过
setScale
的第一个建议对于给定的输入可以按照预期工作,不需要在BigDecimal
的输出上使用中间toDouble()
:xtupzzrd2#
你可以从你的值中减去最小的可能区间(取决于数据类型),这样0.5 -〉0.49999999然后向下舍入。