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中整数之间的除法的主要内容,如果未能解决你的问题,请参考以下文章