Документация для clang-tidy [bugprone-incorrect-roundings] проверка говорит:
Число 0,499999975 (наименьшее представимое число с плавающей точкой ниже 0,5) округляется до 1,0.
Насколько я могу определить, наименьшее число с плавающей запятой ниже 0.5
равно 0.4999999702
, а не 0.499999975
. Но, несмотря на это, оба числа дают мне 0
значения при наивном округлении:
#include <iostream>
int main() {
const float v1 = 0.499999975;
const float v2 = 0.4999999702;
std::cout << (int)(v1+0.5) << "\n"
<< (int)(v2+0.5) << "\n";
}
Я что-то упускаю?