2017-02-20 114 views
0

如果我除1.0f/2.0f,值爲0.5。如果精度值小於刻度,則填零0

我想有一個精度值爲5(0.50000)。使用的BigDecimal向量表設置爲5,但仍然值被印刷爲0.5

的BigDecimal VAL =新的BigDecimal(1.0F/2.0F);
BigDecimal tt = val.setScale(5); System.out.println(tt.doubleValue);

如何設置比例並使其達到0.50000。我的意思是,如果精度值小於標度,那麼pad額外爲零

例如,在這種情況下,1/2總是0.5(精度爲1),如果我想要更高的精度(比如說5),我該如何實現它

請告知

+1

'tt.doubleValue'剛轉換'tt'回了一些不用任何特定的格式。 –

+0

對我來說這是深夜,所以昏倒了。道歉 – user3491141

回答

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()); 
0

使用DecimalFormat

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

輸出是:

0.50000 
+0

你的輸出從哪裏來?這是OP的問題 –

+0

@ScaryWombat'System.out.println(value);' – haifzhan

+0

所以與我的回答相同3編輯;-) –