Java:将双精度数转换为字符串

Posted

技术标签:

【中文标题】Java:将双精度数转换为字符串【英文标题】:Java: Converting a double to a String 【发布时间】:2009-10-05 16:39:05 【问题描述】:

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

如何做到这一点?

【问题讨论】:

【参考方案1】:

试一试

数字格式http://java.sun.com/javase/6/docs/api/java/text/NumberFormat.html

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:
  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));
  

【讨论】:

【参考方案4】:

查看“十进制格式”。它可以让您随意格式化输出!

【讨论】:

以上是关于Java:将双精度数转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

将双精度转换为双精度,带一位小数和一位小数?

可可 - 将双精度转换为字符串

将双精度转换为字符串

SQL Server CE 转换/将双精度转换为字符串

将双精度转换为字符数组 C++

在 C++ 中使用 boost::lexical_cast 将双精度转换为字符串?