2012-09-12 38 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();