2011-04-21 22 views
1

我有一個包含許多十進制值的列表。在java中取整

  • 如果我得到的0.032一個值i必須 圓其關閉,以3.2%
  • 如果我得到的值32.33 我必須四捨五入其關閉,以 32%
  • 如果我得到32.66的值,我必須圓其關閉,以33%
  • 如果十進制數爲5,6,7,8或9 輪到下一個

應該如何我去BT DNG呢?

+3

你確定的第一條規則是正確的?它似乎不符合其他人。 – ZeissS 2011-04-21 09:18:12

回答

0

Math.round()並將其轉換爲百分比形式。

我懷疑.032的情況。休息看起來不錯。

+0

thnx guys.tha math.round幫助。我想說的是例如:結果0.322將顯示32%(如果十進制數字是5,6,7,8或9,則捨去小數點),如果是 例如:將顯示結果0.023 2.3%(以百分比表示一位小數,如果十進制數字是5,6,7,8或9,因爲我是初學者,如果任何人都可以給我邏輯,它將非常有幫助。 – user696266 2011-04-25 12:41:51

+0

只是比較no和決定它。 – 2011-04-25 12:50:47

1

如果我理解你的問題正確:

對於第一點,你可以使用DecimalFormat類,見API

我不知道爲什麼你會想「圓圓」 32.33 - > 32 %,因爲這不是四捨五入。如果解析可以用這種方式給出的用戶輸入數據,則可以除以100(給出0.3233)並使用DecimalFormat。

對於您可以使用Math.round()爲勸低於/高於

0

使用MathUtils(Apache的百科全書數學)其他

MathUtils.round(double, scale, roundingMethod); 

規模 - 數字小數點右邊的數字。 (+/-)
roundingMethodBigDecimal .ROUND_DOWN,#.ROUND_CEILING,#.ROUND_HALF_UP,...