【发布时间】:2013-03-19 13:33:18
【问题描述】:
如何让 Java 在打印/toString 浮点值(float、double、Float、Double)时使用 ∞ 符号而不是字符串“infinity”?
【问题讨论】:
标签: java numbers special-characters tostring infinity
如何让 Java 在打印/toString 浮点值(float、double、Float、Double)时使用 ∞ 符号而不是字符串“infinity”?
【问题讨论】:
标签: java numbers special-characters tostring infinity
您不能更改默认的toString 方法,该方法不是用于用户显示,而是用于调试/记录。
但你可以配置自己的DecimalFormat:
DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.ENGLISH);
symbols.setInfinity("∞");
DecimalFormat decimalFormat = new DecimalFormat("#.#####", symbols);
你这样使用它:
String str = decimalFormat.format(myDouble);
请注意,在负无穷大的情况下,格式化程序会自动添加一个减号。
【讨论】:
Double.toString()的默认行为,即改变FloatingDecimal.toJavaFormatString()的默认行为。我错误地认为这涉及到 DecimalFormat 对象。