【发布时间】:2023-04-05 03:21:02
【问题描述】:
这段代码似乎可以在 Java 中运行,违反了我认为我所知道的关于该语言的所有内容:
int x = 0;
x += 7.4;
x 现在的值为 7。当然,不能只写 int x = 7.4,所以这种行为对我来说似乎很奇怪且不一致。
为什么Java的开发者会选择这样的行为?
我被标记为重复的问题实际上是在回答“发生了什么”部分,但不是我的主要问题:基本原理是什么。
【问题讨论】:
-
因为
+=隐式转换为int,请查看this -
谢谢。这回答了“正在发生的事情”部分。我已经澄清了我的问题。
-
试试
char ch = '0'; ch *= 1.1; assert ch == '4'; -
这来自
C,可能是一种较旧的语言。 -
Java += operator的可能重复
标签: java casting floating-point int double