想要将long(TB中的巨大文件大小)除以某个数字(巨大的int),并安全地获得int



我想用long(TB中的巨大文件大小)除以某个数字(巨大的int),然后安全地得到一个int。但使用类型转换属性,int变长,结果变长。我确信我的商将是一个int,是否可以进行强制转换,或者请指导我找到一个更好的解决方案。

如果铸造可以,那么就铸造吧!

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;

使用显式下变频:

long l_quot=l_size/(long)i_divisor;
int i_qout=(int)l_quot;

最新更新