【问题标题】:How to set specific format for E notation in Java如何在 Java 中为 E 表示法设置特定格式
【发布时间】:2021-10-21 10:33:50
【问题描述】:

我需要将一些浮点数转换为如下格式:2,5000E-003, 2,8625E+000

我知道我可以这样做:

String.format("%s,%sE%s", digitInt, digitAfterDot, digitDegree)

但我希望有人知道更聪明和巧妙的解决方案

【问题讨论】:

    标签: java formatting


    【解决方案1】:

    你可以使用:

    String.format("%1.4e",12345.67890123)
    

    这样的结果是:

    1,2346e+04
    

    这里有一些documentation

    编辑
    如果指数中需要 3 位数字,可以使用DecimalFormat Formatter:

    DecimalFormat format = new DecimalFormat("0.0000E000");
    System.out.print(format.format(12345.67890123f));
    

    哪些输出:

    1,2346E004
    

    请注意,如果指数为正,则它不带有正号。 您可以通过以下方式解决此问题:

    DecimalFormat format = new DecimalFormat("0.0000E000");
    String result = format.format(12345.67890123f);
    if (!result.contains("E-")) {
        result = result.replace("E", "E+");
    }
    
    

    【讨论】:

    • @Flav 非常感谢,但在我的情况下,重要的是在“e”之后有 三个 数字,即使它们等于零
    • @SergeyYuryev 我刚刚用另一个解决方案编辑了我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2015-01-27
    • 2014-08-14
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多