4

我有一个 double,其值为 10,000,000.00(一千万)。我必须将其转换为String. 使用该方法toString时,我得到了String 符合规范的“1.0E7”。不幸的是,我需要String“10,000,000.00”(或等价的,取决于语言环境)。

怎样才能做到这一点?

4

4 回答 4

12

尝试任一

NumberFormat http://java.sun.com/javase/6/docs/api/java/text/NumberFormat.html

十进制格式http://java.sun.com/javase/6/docs/api/java/text/DecimalFormat.html

于 2009-10-05T16:42:04.367 回答
5

除了格式化程序之外,您还可以考虑使用java.math.BigDecimal该类来精确表示数字。

需要完全准确的计算(例如财务计算)最好使用BigDecimal. 浮点数学更适合工程、图形和其他可以牺牲一些准确性来换取速度的数学计算。

于 2009-10-05T16:50:36.877 回答
4
  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));
  }
于 2009-10-05T17:21:38.220 回答
2

查看“十进制格式”。它使您可以根据需要几乎格式化输出!

于 2009-10-05T16:42:32.853 回答