本文介紹了如何在貨幣格式中設置小數的格式?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
有沒有辦法設置小數的格式如下:
100 -> "100"
100.1 -> "100.10"
如果是整數,則省略小數部分。否則,請使用兩位小數設置格式。
推薦答案
我對此表示懷疑。問題是,如果它是一個浮點數,100永遠不是100,它通常是99.9999999999或100.0000001或類似的東西。
如果您確實要以這種方式設置格式,則必須定義一個epsilon,即與整數的最大距離,如果差異較小,則使用整數格式,否則使用浮點數。
這樣的事情會奏效的:
public String formatDecimal(float number) {
float epsilon = 0.004f; // 4 tenths of a cent
if (Math.abs(Math.round(number) - number) < epsilon) {
return String.format("%10.0f", number); // sdb
} else {
return String.format("%10.2f", number); // dj_segfault
}
}
這篇關于如何在貨幣格式中設置小數的格式?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,