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 = ((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 に答える
1

あなたの結果がDoubleあなたがやらない理由であるかのように

val.intValue()
于 2012-09-12T13:43:26.043 に答える