我目前正在观看一些教程,而且我被困在一个看起来像这样的部分:
int x = (int) a_float / an_int;
如果a_float / an_int会发生什么?不是整数?这个数字是圆形/地板/奇怪的东西吗?
答案 0 :(得分:2)
在Java中,强制转换优先于除法:http://introcs.cs.princeton.edu/java/11precedence/。这意味着该声明可以按如下方式细分:
a_float
(基本上发言并以int
存储)an_int
int
值分配给x
如果您希望在操作之前将an_int
提升为float
,则执行除法,省略强制转换。结果将是float
(您可以在分配之前截断为int
):
int x = (float)(a_float / an_int);
与
相同int x = (float)(a_float / (float)an_int);
您还可以阅读此网站,以获得对其含义的完整解释:http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/mixed.html