Java 将双人四舍五入到两个双人中最接近的一个

Java 将双人四舍五入到两个双人中最接近的一个,java,math,rounding,Java,Math,Rounding,有没有一种方法可以把一个双打四舍五入到两个双打中最接近的一个 e、 g: 我想把数字四舍五入到3.3和3.7之间的最接近值。。因此: 3.4 --> 3.3 3.472 --> 3.3 3.5 --> 3.7 3.573 --> 3.7 等等 有没有办法做到这一点?据我所知,没有这样的办法。然而,写自己的不应该是一个很大的困难: static double nearest(double val, double left, double right) { retu

有没有一种方法可以把一个双打四舍五入到两个双打中最接近的一个

e、 g:

我想把数字四舍五入到3.3和3.7之间的最接近值。。因此:

3.4 --> 3.3
3.472 --> 3.3
3.5 --> 3.7
3.573 --> 3.7
等等


有没有办法做到这一点?据我所知,没有这样的办法。然而,写自己的不应该是一个很大的困难:

static double nearest(double val, double left, double right) {
    return Math.abs(val-left) <= Math.abs(val-right) ? left : right;
}
静态双最近(双val、双左、双右){

return Math.abs(val left)这太疯狂了。在这个问题上找不到任何算法!你认为我们如何有时将它四舍五入到地板上,有时将其切掉:/使用if-else条件,自己更改值。可能吗。是的,当然!尝试一下,编码很有趣。
if(x>=(min+max)/2)x=max;else x=min;
不过很好(对于学究)对于最近的(0.5,0.0,1.0)
我宁愿看
1.0
,所以选择