Java中的浮动货币

Java中的浮动货币,java,regex,string,number-formatting,Java,Regex,String,Number Formatting,如果输入数字(浮动),例如12500,则该数字将转换为货币格式12500.00。格式为“####,###,###,##.#”。如何使用java和而不使用任何apache utils或类似库来实现这一点。每3位数字后将重复一个逗号,小数位数将四舍五入,并在小数点后显示为2位数字。如果为.5,则应为.50和 如果是.569,应该是.57。有没有通过正则表达式或其他方法解决这个问题的方法?我通过在谷歌上进行少量搜索找到了以下代码。。。可能对你有帮助 public static void m

如果输入数字(浮动),例如12500,则该数字将转换为货币格式12500.00。格式为“####,###,###,##.#”。如何使用java和而不使用任何apache utils或类似库来实现这一点。每3位数字后将重复一个逗号,小数位数将四舍五入,并在小数点后显示为2位数字。如果为.5,则应为.50和
如果是.569,应该是.57。有没有通过正则表达式或其他方法解决这个问题的方法?

我通过在谷歌上进行少量搜索找到了以下代码。。。可能对你有帮助

      public static void main(String args[])
      {
      float amount =  2192.05f;
      NumberFormat formatter = new DecimalFormat("###,###,###.##");
       System.out.println("The Decimal Value is:"+formatter.format(amount));
      }
查看此链接,了解它非常有帮助。在这个链接中,只有他们让路给必要的格式

前几行代码生成的输出如下所示:

French (France), Euro: 9 876 543,21 €
German (Germany), Euro: 9.876.543,21 €
English (United States), US Dollar: $9,876,543.21

在这种情况下,您可以选择语言环境,甚至不知道特定国家/地区使用的格式,也可以尽情享受。

我通过在谷歌上进行少量搜索找到了以下代码。。。可能对你有帮助

查看此链接,了解它非常有帮助。在这个链接中,只有他们让路给必要的格式

前几行代码生成的输出如下所示:

French (France), Euro: 9 876 543,21 €
German (Germany), Euro: 9.876.543,21 €
English (United States), US Dollar: $9,876,543.21

在这种情况下,您可以选择地区,甚至不知道特定国家/地区使用的格式也可以享受。浮动永远不能代表货币。如果您的软件接受浮点数作为参数,并打算将其转换为货币,则它已经是一个bug。
float
不应用于货币(或大多数事物),因为它的精度非常低。我建议您使用
double
long
cents或
BigDecimal
浮动不能代表货币。如果您的软件接受浮点数作为参数,并打算将其转换为货币,则它已经是一个bug。
float
不应用于货币(或大多数事物),因为它的精度非常低。我建议您使用
double
long
cents或
BigDecimal
此解决方案如何在每3位数字后加逗号?你把问题读对了吗?此外,您的代码将无法编译。@bhaviksah。。你为什么不必要地使用打字呢。只需在RHS上使用
float
值。此解决方案如何在每3位数字后给出逗号?你把问题读对了吗?此外,您的代码将无法编译。@bhaviksah。。你为什么不必要地使用打字呢。只需在RHS上使用
float
value即可。他要求的格式是在2位数字后加逗号,然后从左侧开始为所有剩余数字加3。他提供了货币格式,但使用此代码他甚至不需要关心货币格式。他不能关心/研究货币格式,因为sun团队已经在努力寻找这些格式。:)我会使用
double
而不是
double
他要求的格式是2位数字后第一个逗号,然后从左侧开始的所有剩余数字都是3。他提供了货币格式,但使用此代码他甚至不需要关心货币格式。他不能关心/研究货币格式,因为sun团队已经在努力寻找这些格式。:)我会使用
double
而不是
double