1

long (TB 単位の巨大なファイル サイズ) をある数値 (巨大な int) で割り、安全に int を取得したいと考えています。しかし、型変換プロパティを使用すると、両方の int が長くなり、結果が長くなります。私の商はintになると確信しており、キャストは問題ないか、より良い解決策を教えてください。

4

2 に答える 2

7

キャスティングで問題ない場合は、キャストするだけです。

long size = ...;
int divisor = ...;
int result = (int) (size / divisor);

もちろん、結果が真に の範囲内にあることが確実な場合にのみint、これを行う必要があります。もちろん、いつでも確認できます。

long size = ...;
int divisor = ...;
long fullResult = size / divisor;
if (fullResult < Integer.MIN_VALUE || fullResult > Integer.MAX_VALUE) {
    // Whatever, e.g. throw an exception
}
int result = (int) fullResult;
于 2013-08-22T06:59:25.403 に答える
0

明示的なダウンキャストを使用します。

long l_quot=l_size/(long)i_divisor;
int i_qout=(int)l_quot;
于 2013-08-22T06:59:22.533 に答える