java - 将可能为 null 的 Double 值转换为不带指数的字符串

标签 java

我正在尝试创建一个将 Double 输出为字符串的函数,并满足以下要求:

  1. 它不会显示指数。我相信 Double.toString(dblVal) 或 dblVal.toString() 会处理指数问题。
  2. 如果 Double 为空,则不会出错并显示为“空”。我相信如果 Double 为空,String.valueOf(dblVal) 会自动处理这个问题。

这是我的:

function doubleToString(Double dbl) {
    String strVal = null;
    if (dbl != null)
        strVal = String.valueOf(dbl);
    
    return strVal;
}

满足这两个要求的最佳方法是什么?我不认为 String.valueOf 会摆脱指数所以我不应该使用 String.valueOf() 而是使用 dblVal.toString() 然后只是手动检查它是否为 null 和如果是,则使 strVal 为空?

最佳答案

没有“一个”标准库方法可以满足您的所有需求。比较棘手的部分是“不显示指数”——我能想到的一种方法是使用 BigDecimal类(class)。这涵盖了您的两个要求:

String doubleToString(Double dbl) {
    if (dbl == null) return "null";
    else return BigDecimal.valueOf(dbl).toPlainString();
}

示例:doubleToString(1234e-100)返回 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234

关于java - 将可能为 null 的 Double 值转换为不带指数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62820187/

相关文章:

java - Guice、JerseyServletModule、缺少方法依赖项、REST 服务配置

java - 法语依赖解析器输出大量 MWE?

java - 处理 JPEG 元数据的最佳库是什么?

java - 错误 :Module 'name' production: java. lang.NullPointerException

java - 主线程的 sleep 抛出 InterruptedException

java - 修改 DefaultListModel 中的元素不更新模型

java - JOOQ : pojos in different directory

java - 为什么eclipse中会出现JNI错误?

java - 访问存储在 ArrayList 中的对象的最佳方式?

java - 如何在输入文本时启用按钮并在 Android java 中禁用?