通过删除/截断零来舍入数字

时间:2013-06-19 14:55:28

标签: java

我有一个问题,我得到这样的价值观。 "0.5"1.0

BigDecimal bd = new BigDecimal(d).setScale(1, RoundingMode.HALF_EVEN);
d = bd.doubleValue();

如果我得到0.5的值,我需要显示它。但是当我得到1.0时,我需要将其显示为1 instead of 1.0。如果我改变我的setScale(0),我会得到0而不是0.5。

DecimalFormat df = new DecimalFormat("#.0");
df.format(0.912385);

我也尝试使用十进制格式的sa,e

4 个答案:

答案 0 :(得分:5)

调整模式,使其抑制小数点后的无有效数字

DecimalFormat df = new DecimalFormat("#.#");

答案 1 :(得分:3)

你可以DecimalFormat(String pattern);

DecimalFormat df = new DecimalFormat("#.#");
df.format(0.912385);

答案 2 :(得分:0)

使用:

myBiDecimal.stripTrailingZeros()

但请注意,这会将10变为1e+1

答案 3 :(得分:0)

if(a % 1 != 0) System.out.println("Is a decimal" + yournumber)
else System.out.Println("Is not a decimal" + (int) yournumber)