整数除法浮点结果

integer division to float result

我必须将两个整数相除并得到一个浮点数 我的代码:

Float ws;
int i = Client.getInstance().getUser().getGespielteSpiele() -Client.getInstance().getUser().getGewonneneSpiele();
int zahl1 = Client.getInstance().getUser().getGewonneneSpiele();

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

我用调试器检查值

i = 64

zahl1 = 22

ws = 0.0

为什么ws的结果是0.0?我应该怎么做才能获得正确的浮动?

尝试:

float ws = (float)zahl1/i;

zahl1 / i 被计算为 int 除法,然后由 Float 构造函数转换为 Float。对于浮点除法,将其中一个操作数转换为 floatdouble:

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

当您除以两个 int 时,您将执行整数除法,在本例中将得到 22/64 = 0。只有完成此操作后,您才能创建 float。而 0float 表示是 0.0。如果你想进行浮点除法,你应该在before dividing:

ws = ((float) zahl1) / i;

因为是整数除法,需要先把int值改成float

float ws = (float) zahl1 / i;