【发布时间】:2009-10-05 16:39:05
【问题描述】:
我有一个 double,其值为 10,000,000.00(一千万)。我必须
将其转换为String。当使用toString 方法时,我得到了String
符合规范的“1.0E7”是正确的。不幸的是我需要
String "10,000,000.00"(或等价物,取决于语言环境)。
如何做到这一点?
【问题讨论】:
我有一个 double,其值为 10,000,000.00(一千万)。我必须
将其转换为String。当使用toString 方法时,我得到了String
符合规范的“1.0E7”是正确的。不幸的是我需要
String "10,000,000.00"(或等价物,取决于语言环境)。
如何做到这一点?
【问题讨论】:
除了格式化程序之外,您还可以考虑使用java.math.BigDecimal 类来精确表示数字。
需要完全准确的计算(例如财务计算)最好使用BigDecimal 执行。浮点数学更适合工程、图形和其他可以牺牲一些准确性来换取速度的数学计算。
【讨论】:
public static void main(String[] args) throws ParseException {
double aDouble = 10000000.00;
DecimalFormat nf = (DecimalFormat) NumberFormat.getInstance(Locale.US);
String aString = Double.toString(aDouble);
System.out.println(nf.parse(aString));
}
【讨论】:
查看“十进制格式”。它可以让您随意格式化输出!
【讨论】: