整数除法java返回一个double?怎么回事? 3 月,2 周 Questions & Answers 238 见截图: 发生了什么事?我看到我们将23F转换为整数,所以在选项“II”中,我们最终将得到23/7,这将给我们3。。。至少我是这么想的。但是为什么我们有3.0呢?为什么我们要双人间
# 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输出数字时,float和double看起来是一样的。println方法不会输出带有F后缀的float。F和D后缀仅在Java源代码中使用
# 1 楼答案
因为返回结果的函数被指定给z,z的类型是float
# 2 楼答案
以下是上下文:
表达式的右边是
int
,您已经正确地推断出它的值是3
将
int
值赋给float
变量时,整数将转换为float
这是基元加宽转换的一个示例。当您从“较小”的基本数字类型转换为“较大”的基本数字类型时,它可能会在不同的上下文中发生。
int
型比float
型“小”。总的来说:见上图。但它是一个
float
而不是一个double
在Java中使用
println
输出数字时,float
和double
看起来是一样的。println
方法不会输出带有F
后缀的float
。F
和D
后缀仅在Java源代码中使用