Java中整数之间的除法

Posted

技术标签:

【中文标题】Java中整数之间的除法【英文标题】:Division between integers in Java 【发布时间】:2011-03-05 09:52:59 【问题描述】:

我需要在Java中对整数进行除法,结果应该是浮点数。

我可以只使用/ 符号吗?如:

int integer1 = 1;
int integer2 = 2;
float quotient = integer1 / integer2; // Could I do this?

【问题讨论】:

仅供参考:Don't be surprised if the results seem wrong. 您可能还想检查 this SO post 处理分数。如果您要在其他计算中使用除法结果,则需要获得所有帮助以尽量减少舍入误差。 我建议您使用double 而不是float,因为float 不能准确地表示所有int 值。试试(double) integer1 / integer2 @Peter:我同意。郑重声明,double 只比float 差。它不能解决问题。我想你已经知道了,但我只是想让它记录在案。 :) @Adam, 'double' 至少可以重复所有int 值而不会出错。它不能无误地表示所有 int/int 值,但可能会有适当的舍入,这对于 OPs 应用程序是可以接受的。否则,您需要使用 Faction(用于无限精度)或 BigDecimal(用于非常长的精度) 【参考方案1】:

将其中一个整数转换为浮点数以确保浮点除法:

float result = integer1 / (float) integer2

【讨论】:

以上是关于Java中整数之间的除法的主要内容,如果未能解决你的问题,请参考以下文章

Python 除法运算

整数乘法和除法之间意外的明显性能差异

java做除法运算,为啥除不开时也会得到整数呢

java 自定义一个整数,计算它是几位数?

C整数除法和下限

力扣553(java)-最优除法(中等)