2012-05-17 75 views
0

使用BigDecimal,如何將2.00轉換爲2,1.12301.123等?如何儘可能降低比例?

我怎樣才能得到02.00,1從1.10000或3個0.123? (不改變的值最低刻度)

+0

我明白你的問題的第一行,但第二行不遵循。你爲什麼想要「從'2.00'」得到'0'?或'0.123'中的'3'? – Widor

回答

3

在第一部分,BigDecimal.stripTrailingZeros()

我不能肯定你的意思怎麼樣的第二部分,雖然。你想要最後一位數字嗎?

+0

我想盡可能低的比例,我可以將BigDecimal四捨五入。 2.00以比例1爲2.0(calue相同),值爲0爲2(值相同),值-1爲0(值不相同),所以我的值爲0. 1.10通過值1爲1.1 (好),值爲0是1(不好)。 –

+0

我可以'stripTrailingZeros'的方式,它不會進入負面的規模?所以600.0會變成[600,0]而不是[6,-2]? –

+0

我的意思是,在捏,只是'value = value.stripTrailingZeros(); if(value.scale()<0)value = value.setScale(0,RoundingMode.UNNECESSARY);'這很直接。 –