下面的函数工作得很好,但我想让它以双精度格式返回值,因为下面的函数以字符串格式返回值。
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
的内容,当返回Double.parseDouble(nf.format(val))
时,它将返回错误。
使用Double。parseDouble()
替换为
返回双精度。parseDouble(nf.format(val));
并将方法的返回类型设置为Double。
更新答案
包含val=val.replaceAll(",","\\.");返回语句前的
。
将返回类型更改为双精度,并将返回语句更改为:
Double.parseDouble(nf.format(val));
您可以使用:
Double.parseDouble();
仅当您希望将通过字符串表示的值转换为相应的双精度值时。
对您问题的回答将取决于nf。格式(val)返回。
如果您希望方法返回双精度或双精度的值,则不能使用','分隔符来表示小数点(基于本地化)。双精度将仅将123.54表示为123.54,而不是123,54。
如果要使用本地化格式,请将其设置为字符串。否则,将小数点前后的值拆分为两个不同的双变量,并以最适合您的格式表示它们(即,您自己处理本地化工作)。
Double.parseDouble()不适用于本地化或特殊格式的字符串。
我有一节课
如果我有以下代码 首先,这甚至是可能的,因为它编译得很好。但是我不能使用中的方法执行操作: makeCan是否不同时返回Can和PromotionalCan?如果是这样,当返回PromotionalCan时,如何对变量进行操作?谢谢 编辑:PromotionalCan继承自Can,第二种方法是在PromotionalCan中
我有一个任务,我们要创造一个石头,纸,剪刀的游戏。它指定我们必须创建一个抽象的“工具”类,其中有三个子类:“ToolRock”、“ToolPaper”、“ToolScissors”。抽象类应该有一个“+getFeagnet():tool”函数(用斜体写成)。 我的假设是做一个像这样的抽象函数: RockTool类被指定为具有函数“+get弱点():tool”(不是用斜体写的),我的想法是创建一个覆
假设我有一个函数: 如何指定可以为的返回类型?
我正试图从使用observable转换下面的observable代码。使用可管道操作符创建到。 我已经尝试了下面的方法,但是我得到了一个转换错误,无法转换可观察的类型。看不见的。如有任何帮助,我们将不胜感激。
java.text.NumberFormat类用于根据特定的Locale格式化数字和货币。 数字格式因国家/地区而异。 例如,在丹麦,使用逗号将数字的分数与整数部分分开,而在英格兰,它们使用点作为分隔符。 示例 - 格式编号 在此示例中,我们根据美国语言环境和丹麦语区域设置格式化数字。 IOTester.java import java.text.NumberFormat; import java