2014-02-12 65 views

回答

1

原標題有點誤導,所以我的答案提供了完成此任務的多種方式。第一部分反映了新標題的答案。

11,120.6左移四位小數不會創建1.12;更像1.112或1.11(取決於小數位數)。但不管怎麼說,這裏有一些想法:

DecimalFormat的方式:

float num = 11120.6; 
DecimalFormat numFormat = new DecimalFormat("#.00"); 
System.out.println(numFormat.format(num)); 

如果是純粹的視覺,你可以做這樣的事情:

float num = 11120.6; 
System.out.println(String.format("%.2f", num)); 

那一個給你兩個小數在小數點右邊,產生1.11。

或者這樣的事情呢?

float num = 11120.6; 
num /= 10000.0; 

這會給你1.11206。

您可以創建如果其他邏輯或類似的東西,以適當的量,基於數除以/多,即:

if (num >= 10) 
{ 
    num /= 10.0; 
} 
else if (num >= 100) 
{ 
    num /= 100.0; 
} 
...etc... 

你也可以做這樣的事情與同類邏輯一起以上:

BigDecimal num = new BigDecimal("11120.6"); 
num = num.movePointRight(-4); 

除非有人能想到更好的辦法,你還需要知道的是,數以百萬計表示之前和新的數字是數十億美元。或許,將它作爲一個枚舉存儲在一個單獨的變量中。

你可以做的其他事情,但它的不是很有效,這是我們在大學時在我的C++課上做的事情,當我們亂搞時。您可以創建多個數組或列表(取決於您所做的),以確定數字大小。當你想顯示一些說... listBillions時,你可以將該列表中的任意數字除以1000000000.0,或者將其格式化爲一個字符串。所以,最後你有幾十,幾百,幾千等等的清單,而且你總是會知道listBillions [i]可以是任何形式的數十億美元。

+0

通過使用十進制格式,我現在可以做到了。謝謝大家的幫助。 – user3209213

+0

@ user3209213沒問題。我想我誤解了你的頭銜。你的意思是'號碼'是'不',我認爲你不能使用它。更新我的答案,讓其他人反思。保留其他信息作爲其他選項。 –

相關問題