2010-09-14 60 views
6

我有一個整數值:我如何將整數值轉換爲十進制值?

Integer value = 56472201; 

當值可以是正的還是負的。

當我將該值除以1000000時,我希望以56.472201的形式得到此結果,但它只給出商。我怎樣才能得到商和剩餘值?

+2

什麼語言? – sje397 2010-09-14 09:47:30

+0

用於什麼結果?你想只顯示它,還是你想進行其他計算(以及什麼精度)? – barjak 2010-09-14 11:08:32

回答

6

投它漂浮,然後做到這一點:

int i = 56472201; 

float j = ((float) i)/1000000.0 

編輯:由於精度(需要你的情況),使用雙。另外,作爲由指向康拉德·魯道夫,無需顯式轉換:

double j = i/1000000.0; 
+2

嚴格地說,無論如何你用「浮點數」除法(或者對於幾乎所有的語言來說,'double'),這個演員陣容都是多餘的。 – 2010-09-14 09:48:59

+0

好點,我只是一個不安全/偏執的程序員(害怕strtok!) – lalli 2010-09-14 09:56:03

+0

謝謝你guyes它與@Konrad Rudolph @lalli和@Guffa一起工作感謝您的解決方案 – jimmy 2010-09-14 11:39:20

0

你得值轉換爲一個浮點型的第一,否則你會做一個整數除法。

實施例C#:

int value = 56472201; 
double decimalValue = (double)value/1000000.0; 

(實際上沒有所需要的鑄造在該代碼中,如通過一個浮點數除以將投射到匹配的值,但它更清晰寫出在鑄造代碼,因爲這是實際發生的事情)。

1

如果你用int來除int,你將會得到一個雙重結果,如本單元測試所示。

@Test 
public void testIntToDouble() throws Exception { 
    final int x = 56472201; 
    Assert.assertEquals(56.472201, x/1e6d); 
} 

1e6d1 * 10^6表示爲您的公司從事雙

相關問題