我正在编写一个程序来获取两个数字的平均值。对于测试用例 2, 4
,输出应该是 3
而不是 3.0
。对于测试用例,-1282660896、-672813783
输出应该是 -977737339.5
而不是 -9.777373395E8
。
我的代码是这样的:
public static void getAve(long a, long b){
System.out.println((double)(a + b) / 2);
}
我还创建了一个格式函数来满足我的需要,如下所示:
public static String fmt(double d) {
if (d == (long) d)
return String.format("%d", (long) d);
else
return String.format("%s", d);
}
但这对于测试用例 2 来说也失败了
最佳答案
对于您的情况,您可以执行 String.format("%d", (int)d)
但仅限于 d 没有小数部分的情况。
实际上已经有答案了:
How to nicely format floating numbers to String without unnecessary decimal 0?
关于java - 从 double 中删除小数点后的尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622691/