程序没有给出预期的输出

时间:2013-10-28 11:17:49

标签: java

当我跑步时,

public static void main(String[] args)
{
   float num = 145/156;
   System.out.println(num);
}

我输出0.0,但预期输出为0.92948717。 任何帮助表示赞赏。

11 个答案:

答案 0 :(得分:5)

将整数除以整数会产生整数。 所以你得到0因为数据被截断了。

你需要输入cast this to float

float num = (float)145/156;

答案 1 :(得分:2)

145/1560.something,但由于默认数字在Java中被编码为int,因此您将失去0之后的内容,因为结果将被截断。

你应该施放一个边(另一边将被隐式施放)。

答案 2 :(得分:1)

使用

 public static void main(String[] args)
{
  float num = (float)145/156;
  System.out.println(num);
}

因为,145/156int/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)

145156都是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);