【问题标题】:Using Default Locale Separator with NumberFormat, and then rounding number使用带 NumberFormat 的默认区域设置分隔符,然后舍入数字
【发布时间】:2014-12-05 18:27:13
【问题描述】:

我有这个 Java 代码:

  NumberFormat nf =  NumberFormat.getNumberInstance(Locale.getDefault());
  DecimalFormat df = (DecimalFormat)nf;
  newCurr = df.format(dCurr);

基本上,我传入一个数字,比如 12.344。

我希望它舍入两个位置并使用区域设置的默认分隔符(“。”或“,”)。所以,例如在欧洲的一些国家,我希望这是 12,34

到目前为止,上面的代码已经完成了一半。我得到 12,344。我找不到将 ("#.##") 的 DecimalFormat 放置在哪里,所以它可以被四舍五入。

换句话说,我可以在上面合并DecimalFormat df=new DecimalFormat("#.##");吗?还是我必须另谋出路?

编辑:我想我必须采用 (100.00 * var)/100.00 的旧方法并将其传入?

【问题讨论】:

    标签: java number-formatting decimalformat


    【解决方案1】:

    setMaximumFractionDigit 方法将完成这项工作。查看其余可用方法:http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html#setMaximumFractionDigits%28int%29

    【讨论】:

    • 我认为结合setMinimumFractionDigits 可以满足我的需求。因为我希望整数也以 .00 结尾。编辑:它工作!标记正确
    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2017-05-05
    • 1970-01-01
    • 2011-06-10
    • 2012-09-05
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多