java - 想要将 long(以 TB 为单位的巨大文件大小)除以某个数字(巨大的 int)并安全地获得一个 int

标签 java int type-conversion long-integer division

我想将 long(以 TB 为单位的巨大文件大小)除以某个数字(巨大的 int)并安全地得到一个 int。但是对于类型转换属性,int 会变成 long,结果也会很长。我确定我的商将是一个 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;

关于java - 想要将 long(以 TB 为单位的巨大文件大小)除以某个数字(巨大的 int)并安全地获得一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18373637/

相关文章:

c++ - 仅获取整数作为输入,代码未按预期工作

java - 如何将字节数组中的特定字节转换为整数

java - Spring Servlet 映射困惑

java - 从类中编写一个返回 2 个值的构造函数

java - 从 jTable 获取单个 INT 值

python - 我的代码是错误的(str(1元素)列表转换为int)错误ValueError : invalid literal for int() with base 10: "[' 2']"

c# - 将存储在对象 >= 中的数值与另一个对象进行比较

python - Pandas 数据帧 : convert column to number with default value

java - 如何使用Java显示Glassfish数据?

java - 生成 JAVA 文件并在运行时使用它们