爪哇四舍五入到最接近的 .5
这在Java中怎么可能?
我有一个浮点数,我想把它四舍五入到最接近的.5。
例如:
1.1 应舍入为 1.0
1.3 应舍入为 1.5
2.5 应舍入为 2.5
3.223920 应舍入到 3.0
编辑:另外,我不仅想要字符串表示,我还希望在此之后使用实际的浮点数。
这在Java中怎么可能?
我有一个浮点数,我想把它四舍五入到最接近的.5。
例如:
1.1 应舍入为 1.0
1.3 应舍入为 1.5
2.5 应舍入为 2.5
3.223920 应舍入到 3.0
编辑:另外,我不仅想要字符串表示,我还希望在此之后使用实际的浮点数。
@SamiKorhonen评论中这样说:
乘以二,四舍五入,最后除以二
所以这是代码:
public static double roundToHalf(double d) {
return Math.round(d * 2) / 2.0;
}
public static void main(String[] args) {
double d1 = roundToHalf(1.1);
double d2 = roundToHalf(1.3);
double d3 = roundToHalf(2.5);
double d4 = roundToHalf(3.223920);
double d5 = roundToHalf(3);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
System.out.println(d4);
System.out.println(d5);
}
输出:
1.0
1.5
2.5
3.0
3.0
一般的解决方案是
public static double roundToFraction(double x, long fraction) {
return (double) Math.round(x * fraction) / fraction;
}
在你的情况下,你可以做
double d = roundToFraction(x, 2);
四舍五入到小数点后两位
double d = roundToFraction(x, 100);