我正在编写一个程序来获得两个数字的平均值。对于测试用例,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
您需要一种不切换到科学记数法的格式。 (d)' –
@PeterLawrey谢谢你的解决方案工作:) – Jaguar
你可以保留DecimalFormat对象作为一个常量来提高性能。 –