gpt4 book ai didi

java - 在 Java 中将十进制( double )值 < 0.001 转换为字符串

转载 作者:行者123 更新时间:2023-12-01 21:54:25 25 4
gpt4 key购买 nike

我编写了一个小方法,用于大多数对象到字符串的转换。

public String str(Object object) {
return object == null ? "" : object.toString();
}

double d = 0.0003 传递给此方法时,我得到 3.0E-4 的输出。所以我把方法改成了这样。

public String str(Object object) {
return object == null ? "" : object instanceof Double && (double) object < 0.001 ? String.format("%.10f", object)
: object.toString();
}

但是我对每次转换检查 instanceof 感觉有点不好,这是对非 double 对象的额外检查。这是我可以将 double 转换为精确字符串值的唯一方法,还是可以在不进行额外检查的情况下正确转换。因为如果对象满足 instanceof Double,则转换是免费的,因此我不担心转换的性能。

我尝试了这些步骤,除了 String.format 之外,所有步骤都会产生 E 输出

double d = 0.0003;               // 3.0E-4
System.out.println(String.valueOf(d)); // 3.0E-4
System.out.println(Double.toString(d)); // 3.0E-4
System.out.println(String.format("%.10f", d)); // 0.0003000000

最佳答案

您可以为不同的类型提供不同的功能,例如:

public static String str(final Object object) {
return object == null ? "" : object.toString();
}

public static String str(final Double d) {
return d == null ? "" : str(d.doubleValue());
}

public static String str(final double d) {
return d < 0.001 ? String.format("%.10f", d) : String.valueOf(d);
}

关于java - 在 Java 中将十进制( double )值 < 0.001 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com