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

Pad zeros if precision value less than scale

如果我除以 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),我该如何实现

请指教

只需打印 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());

使用 DecimalFormat :

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

输出为:

0.50000