如果精度值小于刻度,则填充零

时间:2017-02-20 04:32:17

标签: java math decimal bigdecimal

如果我除以1.0f / 2.0f,则该值为0.5。

我希望精度值为5(0.50000)。使用BigDecimal将比例设置为5但仍然将值打印为0.5

  

BigDecimal val = new BigDecimal(1.0f / 2.0f);
  BigDecimal tt =    val.setScale(5);   的System.out.println(tt.doubleValue);

如何设置比例并使其为0.50000。我的意思是如果精度值小于刻度

,则填充额外为零

在这种情况下,例如1/2总是0.5(精度为1),如果我想要更高的精度(比如5),我该如何实现它

请告知

2 个答案:

答案 0 :(得分:1)

只需打印BigDecimal

即可
    BigDecimal val = new BigDecimal(1.0f/2.0f);
    BigDecimal tt = val.setScale(5); 
    System.out.println(tt);

或者如果你想使用双,那么你可以使用

    System.out.printf("%.5f%n", tt.doubleValue());

答案 1 :(得分:0)

使用DecimalFormat

BigDecimal a = new BigDecimal(1/2.0);
BigDecimal value = a.setScale(5, BigDecimal.ROUND_HALF_EVEN);
System.out.println(value);

输出结果为:

0.50000