0

假设我的范围是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(不关心最终值是否被四舍五入或截断)

有什么建议么

4

3 回答 3

1

好像你的结果Double就是你不做的原因

val.intValue()
于 2012-09-12T13:43:26.043 回答
1

首先,你的计算是错误的。根据您的描述,您可能想要执行以下操作:

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

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

int intVal = val.intValue();
于 2012-09-12T13:48:28.503 回答
1

如果是呈现结果的问题,您应该看看:

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

如果这只是一个整数的问题。

int myInt = val.intValue();
于 2012-09-12T13:49:11.483 回答