这个表达式的数据类型是什么? (3 + 4 / (int)3.14) * 5
What is the data type of this expression? (3 + 4 / (int)3.14) * 5
我对 Java、BlueJ 等还比较陌生。我试图找出这个表达式的数据类型,我认为它是 int。但我不太确定,我很乐意帮忙!下面列出了表达式。
(3 + 4 / (int)3.14) * 5
您正在将 3.14 类型转换为 int,因此它将变为 3,因此当整个表达式被执行时,结果将变为 int 值,但是如果您不将 3.14 类型转换为 int,它将是我的意思的两倍。
double a = (3 + 4 / 3.14) * 5; // double as contains decimal value
int a = (3 + 4 / (int)3.14) * 5; //type casting causing it to become int
是int
。使用 JDK9+ 的 jshell 可以很容易地证明这一点:
jshell> (3 + 4 / (int)3.14) * 5
==> 20
jshell> /vars
| int = 20
如您所见,表达式的推断类型为int
。
我对 Java、BlueJ 等还比较陌生。我试图找出这个表达式的数据类型,我认为它是 int。但我不太确定,我很乐意帮忙!下面列出了表达式。
(3 + 4 / (int)3.14) * 5
您正在将 3.14 类型转换为 int,因此它将变为 3,因此当整个表达式被执行时,结果将变为 int 值,但是如果您不将 3.14 类型转换为 int,它将是我的意思的两倍。
double a = (3 + 4 / 3.14) * 5; // double as contains decimal value
int a = (3 + 4 / (int)3.14) * 5; //type casting causing it to become int
是int
。使用 JDK9+ 的 jshell 可以很容易地证明这一点:
jshell> (3 + 4 / (int)3.14) * 5
==> 20
jshell> /vars
| int = 20
如您所见,表达式的推断类型为int
。