当我跑步时,
public static void main(String[] args)
{
float num = 145/156;
System.out.println(num);
}
我输出0.0,但预期输出为0.92948717。 任何帮助表示赞赏。
答案 0 :(得分:5)
将整数除以整数会产生整数。 所以你得到0因为数据被截断了。
你需要输入cast this to float
float num = (float)145/156;
答案 1 :(得分:2)
145/156
是0.something
,但由于默认数字在Java中被编码为int
,因此您将失去0
之后的内容,因为结果将被截断。
你应该施放一个边(另一边将被隐式施放)。
答案 2 :(得分:1)
使用
public static void main(String[] args)
{
float num = (float)145/156;
System.out.println(num);
}
因为,145/156
是int/int
,所以结果为0,类型为float,即0.0
答案 3 :(得分:1)
145和146文字是整数,/是整数除法。
尝试仅使用145f(f表示浮点数)来强制进行小数除法。
答案 4 :(得分:1)
为什么没有人提到较短的选择?
float num = 145f/156;
答案 5 :(得分:0)
将145/156
转换为像float num = (float)145/156;
答案 6 :(得分:0)
你只需要cast
至少一个浮点数的操作数
float num = (float) 145 / 156;
或
float num = 145 / (float) 156;
答案 7 :(得分:0)
145
和156
都是int
类型,因此结果被'解释'为整数(点后面的所有内容都被截断,因此0.92948717将变为0),并且保存到float
类型的变量中,该变量显示为0.0
。
将两个数字中的至少一个投射到浮点数,以便通知机器将结果作为浮点数处理。
float num = (float) 145 / 156;
或者,您可以使用f
为数字后缀,以指示机器将数字“解释”为浮点数:
float num = 145f / 156;
答案 8 :(得分:0)
这里你要做的就是,
int a = 145;
int b = 156;
float num = a/b;
这就是你最后获得零点的原因。 因此,要获得预期的输出,必须先按如下方式进行投射
float num = (float) a/b;
答案 9 :(得分:0)
您使用的数字是整数。 Java中的整数除法产生整数。除了将第一个数字转换为float以强制转换和正确的浮点运算之外,如下所示:
float num = (float)145/156;
你也可以写下这样的表达式:
float num = 145f/156;
这样,通过在末尾添加f
,数字145f
将被解释为float。
答案 10 :(得分:0)
145和156都是整数,确保至少有一个小数。例如:
float num = (145.0 / 156);