java - 从 double 中删除小数点后的尾随零

标签 java double

我正在编写一个程序来获取两个数字的平均值。对于测试用例 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/

相关文章:

java - 在 JTable 中对 double 值进行排序

Java 为什么我的双数最后会得到数字

java - Java 中 double 的模数

java - Hibernate - 命名查询未知

java - SSO - CAS 协议(protocol) - 更新参数

java - 无法在不使用文件 : Prefix 的情况下构造具有相对文件路径的图像对象

java - 屏幕截图未附加到使用 testNG 运行的 allure 报告中

c - C如何处理混合精度运算

iphone - 比较 Objective-C 中的 float 和 double 数据类型

java - Java 中的构造函数链会创建多个对象吗?