我需要将一个double舍入到最接近的.5。我不要想结束以0结尾的数字。舍入到最接近的一半(不是最接近的整数)
我已经搜索了一下,但似乎每个人都想绕到最接近的多个的.5,而不是只有最接近的一半,但不是全部。我试着除以0.5,四舍五入,再乘以0.5,但是这仍然是0.5的倍数。在此之后加上或减去.5并不总是围绕它应该去的数字(当你应该减去时,你可能会增加)。
任何帮助将不胜感激。
我需要将一个double舍入到最接近的.5。我不要想结束以0结尾的数字。舍入到最接近的一半(不是最接近的整数)
我已经搜索了一下,但似乎每个人都想绕到最接近的多个的.5,而不是只有最接近的一半,但不是全部。我试着除以0.5,四舍五入,再乘以0.5,但是这仍然是0.5的倍数。在此之后加上或减去.5并不总是围绕它应该去的数字(当你应该减去时,你可能会增加)。
任何帮助将不胜感激。
我认为, Math.round(num * 2)/2.0f
应解决舍入到最近的一半问题:
Math.round(3.9 * 2)/2.0f == 8/2.0f = 4.0
Math.round(3.6 * 2)/2.0f == 7/2.0f = 3.5
Math.round(3.1 * 2)/2.0f == 6/2.0f = 3.0
您使用哪种语言? –
啊,忘记写了。 Java的。 – np98765
对于我的floor功能,比加0.5解决了你的问题。 – cerkiewny