【问题标题】:How to display 3 decimal points without round up?如何在不四舍五入的情况下显示 3 个小数点?
【发布时间】:2015-02-02 07:39:12
【问题描述】:

我正在制作一个需要显示 3 个小数点的应用程序,我通过以下方式实现 NumberDecimal 但问题是如果第 4 位大于 5 则为第 3 位 自动增加。我想显示 ex 的确切数字:

Result           : 100.2356 
Output           : 100.236  // Applying NumberDecimal

需要这个输出:100.235 //我需要这个输出

This is my function :
public String setdecimal(float a) 
{
   NumberFormat formatter = new DecimalFormat("##.###");
   return formatter.format(a);

}

【问题讨论】:

    标签: java android decimal bigdecimal number-formatting


    【解决方案1】:

    使用RoundingMode.FLOOR:

    NumberFormat formatter = new DecimalFormat("##.###");
    formatter.setRoundingMode(RoundingMode.FLOOR);
    

    根据您要如何处理负数,您还可以使用RoundingMode.DOWN,它会向零舍入。

    【讨论】:

    • 它说没有总结
    【解决方案2】:

    您可以使用以下方法截断点后的数字而不将值四舍五入。

    public static String getThreeDigitDisplayValueFromFloat(float value) {
    
        String price = new DecimalFormat("##.###").format(value);
        return String.format(Locale.getDefault(), "%.3f", Float.parseFloat(price));
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      相关资源
      最近更新 更多