Java中出现意外结果(浮动到整数)

Pus*_*mar 1 java

我有这个问题

System.out.print((9/5) * 3);
Run Code Online (Sandbox Code Playgroud)

我期待结果,5.4但它返回3.为什么会这样?

Bat*_*eba 8

9/5整数运算来计算,因此它等于1.

写作9.0 / 5 * 3是一种常见的修复方式 (将该术语中的一个系数提升为double强制评估以双精度浮点进行.)