如何在不四舍五入的情况下显示 3 个小数点?

Posted

技术标签:

【中文标题】如何在不四舍五入的情况下显示 3 个小数点?【英文标题】:How to display 3 decimal points without round up? 【发布时间】: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);


【问题讨论】:

【参考方案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));

【讨论】:

以上是关于如何在不四舍五入的情况下显示 3 个小数点?的主要内容,如果未能解决你的问题,请参考以下文章

python中小数点后取2位(四舍五入)以及取2位(四舍五不入)

没有四舍五入小数的树枝数字格式

如何在不向上或向下舍入的情况下获得精确的数字[重复]

将double转换为字符串时,如何在C#中将其四舍五入到N个小数位? [复制]

C语言小数的四舍五入

excel怎么把小数点后保留两位怎么操作?