Java 如何让一个数是都显示2位小数

当一个数为 1 的时候呢 让他显示1.00
当一个数为 2.333的时候呢 让他显示2.33
我用了Double 当为整数的时候 不能显示出后两位小数

int a = 1;
        BigDecimal bg = new BigDecimal(Double.valueOf(a));
        //ROUND_DOWN BigDecimal的舍入模式,四舍五入用ROUND_HALF_UP
        double f1 = bg.setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
        //不足两位补上0
        DecimalFormat decimalFormat = new DecimalFormat("0.00#");
        String strVal = decimalFormat.format(f1);
        System.out.println(strVal);

使用BigDecimal,示例如下:

Integer value = 1;
BigDecimal bigDecimal = new BigDecimal(value).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bigDecimal);

可以考虑使用整数x100

比如
int i = 1 * 100;
System.out.println(i / 100 + "." + (i / 10) % 10 + "" + (i % 10);

int i = (int)(2.333 * 100);
System.out.println(i / 100 + "." + (i / 10) % 10 + "" + (i % 10);

如果只是截取或补位输出结果都是用String.format("%.2f",数值); 处理就好。需要科学计算就要用到BigDecimal