java - 在这种情况下如何消除指数结果

标签 java

如果值是这样的 (0.0007) 以小数点后 3 个零结尾,我得到的结果是 4.0E-4 .

请告诉我如何解决这个问题

这是我的程序。

package com;
import java.text.DecimalFormat;
public class Test {
    public static void main(String args[]) {
        try {
            String result = "";
            Test test = new Test();
            double value = 0.0004;
            if (value < 1) {
                result = test.numberFormat(value, 4);
            } else {
                result = test.numberFormat(value, 2);
            }
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public String numberFormat(double d, int decimals) {
        if (2 == decimals)
            return new DecimalFormat("#,###,###,##0.00").format(d);
        else if (0 == decimals)
            return new DecimalFormat("#,###,###,##0").format(d);
        else if (3 == decimals)
            return new DecimalFormat("#,###,###,##0.000").format(d);
        else if (4 == decimals)
            new DecimalFormat("#,###,###,##0.00##").format(d);
        return String.valueOf(d);
    }

}

最佳答案

你只是忘记了 return 声明。

else if (4 == decimals)
    return new DecimalFormat("#,###,###,##0.00##").format(d);

所以在 4 的情况下,您使用 DecimalFormat 来格式化您的数字,但随后仅在最后的 else 之后返回 double 的正常字符串表示形式。

关于java - 在这种情况下如何消除指数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17297509/

相关文章:

java - 是否有低级 Swift 类可以在 AWS S3 中上传文件

java - 将 BreakAfterAcquireFailure 设置为 true 时,DataSource 的连接没有重新连接

java - 在 Windows 7 中安装 JDK 1.2

java - ResultSet 的 Oracle JDBC 性能

java - 如果使用 @Local 注释 (EJB),则会出错

Java - 全局、可重用的加载对话框

java - 新的构建类型:如何为此添加androidTestCompile?

java - 如何与 OBD-II 设备通信

可以从sql生成图表的Java库

java - 如何在 Spring Boot 中接受直到 PathVariable 的所有嵌套子目录?