2012-09-12 71 views
0

假設我有從0-100 &我選擇一個隨機數X的範圍說29的Java:問題在轉換的指數值的結果爲int

現在我增加至一個大數目說10位數字1023654740.

現在我想在0-1023654740找到那個X的位置。 (這樣我相信是1023654740的29%)

如果我使用Double進行計算,我得到一個指數值。

double range = 1023654740; 
double position = 29; // Can be any number from 0 - range 
Double val = (((double) position/range) * 100); 

Result: 2.8329864422842414E-6 

但我想最終結果在int(如果最終值被四捨五入或截斷不關心)

任何建議

+0

不應該是'(位置/ 100.0)*範圍'? – Baz

回答

1

首先,你的計算是錯誤的。根據你的描述,你可能要做到以下幾點:

Double val = ((double)position/100) * range; 

然後你可以通過你的int值(由截斷):

int intVal = val.intValue(); 
+0

我的壞...謝謝 – reiley

1

彷彿你的結果是Double爲什麼你剛纔不這樣做

val.intValue() 
1

如果呈現的結果,你的事應該看看:

String myBeautifulInteger = NumberFormat.getIntegerInstance().format(val); 

如果它只是一個整數的問題。

int myInt = val.intValue();