Java中整数的除法

8

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

我能直接使用/符号吗?就像这样:

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

5
请注意:如果结果看起来不正确,请不要感到惊讶。 - Adam Paynter
你可能还想查看这篇SO帖子,它涉及到分数的处理。如果你打算在其他计算中使用除法结果,你需要尽可能减少舍入误差,因此需要所有的帮助。 - darioo
我建议您使用double而不是float,因为float不能准确地表示所有的int值。请尝试(double) integer1 / integer2. - Peter Lawrey
@Peter:我同意。记录一下,double 仅仅比 float 好一点,它并没有解决问题。我猜你已经知道了这个,但我只是想让它留在记录中。 :) - Adam Paynter
2
@Adam,“double”可以表示所有“int”值而不出现错误。它不能无误地表示所有“int”/“int”值,但很可能存在适当的舍入方式,对于OPs的应用程序来说是可以接受的。否则,您需要使用分数(用于无限精度)或BigDecimal(用于非常长的精度)。 - Peter Lawrey
1个回答

25

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

float result = integer1 / (float) integer2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接