我正在尝试创建一个将 Double 输出为字符串的函数,并满足以下要求:
- 它不会显示指数。我相信 Double.toString(dblVal) 或 dblVal.toString() 会处理指数问题。
- 如果 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/