Java double避免科学计数法,但保留数据类型

问题描述

如何更改Java中double的科学表示法,但保留数据类型?我了解DecimalFormat,并且不想打印要输出的值。我想将其作为双倍而不是科学计数法沿管道传递。例如,我希望2000000000000为双精度,而不是2.0E12的形式。到目前为止,我发现的每个解决方案都将其转换为长整数或大十进制或字符串。是否可以将其保留为双?

解决方法

double不编码任何格式信息,仅编码值。默认情况下,格式是由Double.toString控制的,或者将值插入HTML页面的代码可能正在使用格式化程序。

一个选择是用包装类的实例替换您的double,该包装类带有一个double字段,但具有一个toString方法,该方法可以执行您想要的操作。要进行算术运算,请访问double字段。 HTML页面管道发现不是标准类之一的引用变量,可能会调用其toString来格式化该值。