java - 想要将长(TBs中的巨大文件大小)除以某个数字(巨大的int)并安全地获得一个int

时间:2013-08-22 06:57:32

标签: java int type-conversion long-integer division

我想将长(TBs中的巨大文件大小)除以某个数字(巨大的int)并安全地得到一个int。但是对于类型转换属性,int变长并且结果很长。我确定我的商数将是一个int,正在投入,或者请指导我找到更好的解决方案。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

使用明确的向下转发:

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