浮点值的算术运算会返回意外的答案

时间:2016-04-10 13:45:31

标签: java

如果我打印x的值为:

int a=1;
int b=6;
float x=(a/b);

输出为0.0

但是,如果我改变第三行     float x =(float)a /(float)b;

输出为0.1666667(应该是)

为什么会有差异?

1 个答案:

答案 0 :(得分:0)

这是因为两个变量都是int类型,因此除法返回int

您必须至少将其中一个投放到float,以强制该部门将结果返回float

以下是代码段:

public static void main (String[] args) throws Exception {
    int a = 1;
    int b = 6;
    float x = ((float)a/b);
    System.out.println("Result: " + x);
}

输出:

Result: 0.16666667

注意:在上面的示例中,我已将a投放到float。您还可以将b投射到float而不是a,如下所示:

float x = (a/(float)b);