可能重复:
如何在Java中将整数转换为float?
我遇到了这个代码的问题.我有两个变量int i和float f.
int i = 23;
float f = i/10;
f2.3
我想f变量中的值应该是2.0
但真正的产值2.3是int i
为什么结果会像这样发生,如何获得浮点值 float f
Bri*_*new 12
float f = i/10
使用整数运算(分子和分母都是整数).然后将结果提升为float类型.
如果你这样做
float f = i/10f
Run Code Online (Sandbox Code Playgroud)
然后你将强制浮点运算(分母现在是非整数).连续f表示10f被视为浮点.指定10.0或10d表示加倍.
输出为2.0f,因为分子和分母都是整数,因此它使用整数运算.
i/10返回2时float,将其转换为2.0f.
你需要对至少一个数字/分母进行类型转换float才能进行FP分割
int i = 23;
float f = (float)i/10;
Run Code Online (Sandbox Code Playgroud)
要么
float f = i/10f;
Run Code Online (Sandbox Code Playgroud)
可能的方法.
float z = (float) x / y;
Run Code Online (Sandbox Code Playgroud)
要么
float z = x / (float) y;
Run Code Online (Sandbox Code Playgroud)
或(不是必需的)
float z = (float) x / (float) y;
Run Code Online (Sandbox Code Playgroud)