摆脱 "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);
是否有可能摆脱 "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);