【问题标题】:how to get double value of a string with mantissa separator?如何使用尾数分隔符获取字符串的双值?
【发布时间】:2014-05-10 12:55:43
【问题描述】:

我有以下字符串:

String p = "33,644.234";

如何将其转换为双精度值?

以下给出java.lang.NumberFormatException: For input string: "33,644.234"

System.out.println(Double.valueOf(p));

请提出建议。

【问题讨论】:

  • 去掉逗号?
  • 不,我做不到。我需要输出两倍为 33,644.234
  • @AnushreeAcharjee,如果您想print 该格式的双倍,请参阅我的答案的更新。
  • 感谢 merlin2011。如果我希望输出类型为double,而不是String,有什么办法吗?
  • double 在计算机中的真实形式存储为一堆位。 Java默认的双打打印方式不提供,,这就是为什么我们需要使用String.format来以某种方式显示。

标签: java


【解决方案1】:

去掉逗号再解析。

 double d = Double.parseDouble(p.replace(",",""));

根据 OP 的更新,他希望使用逗号以原始形式打印双精度数。答案来自this question

System.out.println(String.format("%1$,.2f", d));

输出:

33,644.23

【讨论】:

  • 听起来不错,但请记住该解决方案无法正确支持 i18n
  • @AleZalazar,是的,但我认为 OP 会澄清他是否也需要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 2013-04-21
  • 1970-01-01
  • 2012-05-19
  • 2012-06-27
相关资源
最近更新 更多