有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

整数除法java返回一个double?怎么回事?

见截图:

enter image description here

发生了什么事?我看到我们将23F转换为整数,所以在选项“II”中,我们最终将得到23/7,这将给我们3。。。至少我是这么想的。但是为什么我们有3.0呢?为什么我们要双人间


共 (2) 个答案

  1. # 1 楼答案

    因为返回结果的函数被指定给z,z的类型是float

  2. # 2 楼答案

    以下是上下文:

    float x = myFunc(23F);
    
    int myFunc(float x) { ... }
    

    表达式的右边是int,您已经正确地推断出它的值是3

    int值赋给float变量时,整数将转换为float

    这是基元加宽转换的一个示例。当您从“较小”的基本数字类型转换为“较大”的基本数字类型时,它可能会在不同的上下文中发生。int型比float型“小”。总的来说:

    byte < short and char < int < long < float < double.


    Why do we get a double?

    见上图。但它是一个float而不是一个double

    在Java中使用println输出数字时,floatdouble看起来是一样的。println方法不会输出带有F后缀的floatFD后缀仅在Java源代码中使用