0

我有一个问题,我得到这样的值。"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

4 回答 4

5

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

DecimalFormat df = new DecimalFormat("#.#");
于 2013-06-19T14:57:46.340 回答
3

你可以通过DecimalFormat(String pattern);

DecimalFormat df = new DecimalFormat("#.#");
df.format(0.912385);
于 2013-06-19T14:58:11.143 回答
0

利用:

myBiDecimal.stripTrailingZeros()

但是,请注意,这将10变成1e+1

于 2013-06-19T14:58:44.893 回答
0
if(a % 1 != 0) System.out.println("Is a decimal" + yournumber)
else System.out.Println("Is not a decimal" + (int) yournumber)
于 2013-06-19T14:59:10.710 回答