Java:将指数值的结果转换为int的问题

时间:2012-09-12 13:40:29

标签: java

假设我的范围是 0-100 &我选择一个随机数X表示29。

现在我将范围增加到一个很大的数字,比如一个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中找到最终结果。(不要在意最终值是否四舍五入或截断)

任何建议

3 个答案:

答案 0 :(得分:1)

好像你的结果是Double为什么你不做

val.intValue()

答案 1 :(得分:1)

首先,你的计算错了。根据您的描述,您可能希望执行以下操作:

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

然后你可以通过以下方式获取你的int值(通过截断):

int intVal = val.intValue();

答案 2 :(得分:1)

如果是提出结果的问题,你应该看看:

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

如果只是一个整数问题。

int myInt = val.intValue();