如何在不四舍五入的情况下显示 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位(四舍五不入)