Избавьтесь от предупреждения «целочисленное деление в контексте с плавающей точкой» - PullRequest
0 голосов
/ 26 марта 2020

Можно ли избавиться от предупреждения «целочисленное деление в контексте с плавающей запятой» в этой строке кода:

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

1 Ответ

3 голосов
/ 26 марта 2020

Ну, одним из решений будет

int roundedValue = (num / 10) * 10; 

Обратите внимание, что целочисленное деление усекается, поэтому вызов Math.round излишен в приведенном выше.

С другой стороны, это может не дать Вы ответ, который вы ожидаете. Возможная альтернатива, которая дает другой (но, возможно, более правильный) ответ:

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

(Например, вы увидите другие результаты для num = 16.)

Другими словами, это предупреждение может указывать на ошибку в вашем коде! Делать предупреждения «просто на расстоянии go» - плохая идея, если предупреждение говорит вам о чем-то важном.


Если вам действительно нужно подавить предупреждение в определенной строке c с помощью Intellij; см. Отключение предупреждения в IntelliJ для одной строки . (Использование ярлыка IDE означает, что вам не нужно знать имя предупреждения, указанное компилятором c.)

...