摆脱 "integer division in floating-point context" 警告

Get rid of "integer division in floating-point context" warning

是否有可能摆脱 "integer division in floating-point context" 警告,在这行代码中:

int num = 14;
int roundedValue = (Math.round(num / 10) * 10); 

一个解决方案是

int roundedValue = (num / 10) * 10; 

请注意,整数除法会截断,因此上面的 Math.round 调用是多余的。

另一方面,这可能不会给您期望的答案。给出不同(但可能更正确)答案的可能替代方案是:

int roundedValue = Math.round(num / 10.0) * 10; 

(例如,您会看到 num = 16 的不同结果。)

换句话说,这个警告实际上可能指出了您代码中的错误!如果警告告诉你一些重要的事情,发出警告 "just go away" 是个坏主意。


如果您确实需要使用 Intellij 抑制特定行上的警告;参见 Disable warning in IntelliJ for one line。 (使用 IDE 快捷方式意味着您不必知道编译器特定的警告名称。)

您可以尝试将整数转换为浮点数:

int num = 14;
int roundedValue = (Math.round(((float) num) / 10) * 10);