Java 浮点结果的整数除法

Java 浮点结果的整数除法,java,floating-point,division,Java,Floating Point,Division,我必须除以两个整数,得到一个浮点数 我的代码: 我用调试器检查这些值 i = 64 zahl1 = 22 ws = 0.0 为什么ws0.0的结果是?如何获得正确的浮点值?尝试: float ws = (float)zahl1/i; zahl1/i计算为整数除法,然后由Float构造函数转换为Float。对于浮点除法,将其中一个操作数强制转换为float或double: ws = new Float((float)zahl1 / i); 当您将两个ints除法时,您将执行整数除法,在本

我必须除以两个整数,得到一个浮点数 我的代码:

我用调试器检查这些值

i = 64

zahl1 = 22

ws = 0.0
为什么
ws
0.0的结果是?如何获得正确的浮点值?

尝试:

float ws = (float)zahl1/i;

zahl1/i
计算为整数除法,然后由
Float
构造函数转换为Float。对于浮点除法,将其中一个操作数强制转换为
float
double

ws = new Float((float)zahl1 / i);

当您将两个
int
s除法时,您将执行整数除法,在本例中,这将导致22/64=0。只有在完成此操作后,您才能创建一个
浮点
0
float
表示为
0.0
。如果要执行浮点除法,应在除法之前强制转换

ws = ((float) zahl1) / i;

这是因为要进行整数除法,首先需要将int值更改为float

float ws = (float) zahl1 / i;

很好,谢谢,这个解决方案是正确的,解释得很好:)
float ws = (float) zahl1 / i;