【问题标题】:java - round currency to 2 decimal placesjava - 将货币四舍五入到小数点后两位
【发布时间】:2016-02-19 18:13:08
【问题描述】:

我有一个小问题,我似乎无法解决。

我想以“100.50 英镑”的格式打印我的余额,但它目前给我一个“100.5 英镑”的格式。

我正在使用 decimalFormat 方法,但它不起作用。有什么帮助吗?

final DecimalFormat df2 = new DecimalFormat("#.##");

balance = 100.499999;
System.out.println("Balance: £ " + df2.format(balance));

通过将 ("#.##") 更改为 ("#.00") 来修复错误

【问题讨论】:

  • @TomasBisciak Nope doesn't work 给我一个错误
  • @imraanstack1 这些对你有用吗?如果它适合您,请接受答案,还有一些您有但未标记为已回答的问题,请在您的个人资料中查看它们,以奖励人们的帮助。

标签: java decimal currency decimalformat


【解决方案1】:

这可行:new DecimalFormat("0.00");

更新

要全面了解java.text.DecimalFormat 中使用的模式,请参阅Java API https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

【讨论】:

    【解决方案2】:
    final DecimalFormat df2 = new DecimalFormat("#.00");
    balance = 100.499999;
    System.out.println("Balance: £ " + df2.format(balance));
    

    这应该可以工作

    根据@A2H 的回答,我想记下。

    假设,你有

    balance = .7538;
    

    如果你希望它是 0.75,那么使用

    new DecimalFormat("0.00");
    

    或者如果你想成为 0.75,那么使用

    new DecimalFormat("#.00");
    

    【讨论】:

    • 嗯,好点,我只是在测试我的代码,当余额中有 50p 时,它只显示 0.50。我该怎么做才能显示 0.50?
    • 使用 newDecimalFormat("0.00");
    • 不起作用。仍然给我错误 .50 而不是 0.50
    【解决方案3】:
    double value= 213.3456;
    DecimalFormat df = new DecimalFormat("#.00");      
    System.out.println(df.format(value));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多