【发布时间】:2013-10-19 04:51:01
【问题描述】:
下面的函数完美运行,但我想让它以双精度格式返回值,因为下面的函数以字符串格式返回值。
private static String convertMoneyToSap(double val) {
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
nf.setGroupingUsed(false);
return nf.format(val); //--> I would like this to return in double format
}
我该怎么做?谢谢。
更新
当我尝试使用:return Double.parseDouble(nf.format(val)) 时,出现错误:
An error occurred: java.lang.NumberFormatException
上面函数的使用示例如下:
convertMoneyToSap(1234567.89); //--> The expected result: 1234567,89
上述函数的预期结果是以字符串形式返回。当我尝试使用Double.parseDouble() 时,它会收到一条错误消息。
更新 2
Double.parseDouble("1234,99") //--> will return error
Double.parseDouble("1234.56") //--> will return successful
问题是,nf.format(val) 将返回类似于:1234,99 的内容,而当涉及到 return Double.parseDouble(nf.format(val)) 时,它将返回错误。
【问题讨论】:
-
从double转换为Double是什么意思?它们基本相同
-
“双格式”是什么意思?结果应该是什么样子(对于给定的输入)?
-
@IlyaBursov:是的,他们是。但我想更改语言环境,使其返回类似:
123.456,78而不是123,456.78 -
所以你想将双精度转换为字符串,这就是你当前的代码所做的
标签: java string double number-formatting