【问题标题】:Convert double to String in Java [duplicate]在Java中将double转换为String [重复]
【发布时间】:2014-09-23 22:10:29
【问题描述】:

我要将双精度值转换为字符串。

double d=12345678.999;
String str = String.valueOf(d);

或者,简单的

String str = ""+d;

是不是,但是以指数形式——返回字符串值:

1.2345678999E7

我需要字符串中的值:

12345678.999

有没有办法做到这一点?我可以将字符串解析为指数的值——“E”之后的部分并从那里开始,但必须有一种更简单的方法。

//============================

编辑:

输入中小数部分的长度未知,可以是任意位数:

12345678.999

12345678.9999999

为小数部分设置格式将修复小数位数(?)

【问题讨论】:

标签: java string types double


【解决方案1】:

您应该使用 NumberFormat 来格式化字符串,这样它们就不会以科学计数法显示。

String str = NumberFormat.getInstance().format(d);

【讨论】:

  • java.text.NumberFormat.getInstance().format(0.9999999d) 生成1
【解决方案2】:

使用String.format():

double d=12345678.999;
System.out.println(String.format("%12.3f", d));

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2020-06-22
    • 1970-01-01
    • 2013-11-10
    相关资源
    最近更新 更多