【问题标题】:Java Decimal issue with format #.# in androidandroid中格式#.#的Java十进制问题
【发布时间】:2013-02-27 14:46:47
【问题描述】:

我已使用以下代码获取十进制格式并将其设置为编辑文本。

DecimalFormat decimalFormat = new DecimalFormat("#.#");
editSoilDepth.setText(decimalFormat.format(5.58f));

如果我这样做,它会给我输出:5.9 但我不想替换小数点第一个值并希望打印为 5.5

我该怎么做?

任何建议将不胜感激。

【问题讨论】:

  • 试试DecimalFormat decimalFormat = new DecimalFormat("#.##");
  • 但是如果有十进制“5.889”怎么办......那时我想要“5.8”输出。
  • 试试这个 NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(2); nf.format(yourNumber);

标签: java android decimal


【解决方案1】:

在使用DecimalFormat之前添加这一行:

df.setRoundingMode(RoundingMode.DOWN);

【讨论】:

    【解决方案2】:
    DecimalFormat decimalFormat = new DecimalFormat("#.#");
            decimalFormat.setRoundingMode(RoundingMode.DOWN);
    
            decimalFormat.format(5.58f);
    

    【讨论】:

      【解决方案3】:

      试试这个

      double roundOff = Math.round(a * 10.0) / 10.0;
      

      【讨论】:

        猜你喜欢
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多