Top.Mail.Ru
Ответы

Как сделать округление числа через неявное преобразование типа double в целочисленное не используя ceil, floor, rint?

Например, дано число 5.55:
double f = 5.55;


как сделать чтобы оно превратилось в 6?
int a = f; // - не помогает, выводится 0.000000

По дате
По рейтингу
Аватар пользователя
Мастер

Вы можете использовать преобразование типа double в int с добавлением 0.5 перед преобразованием, чтобы получить правильное округление. Вот как это сделать:

```c++
#include <iostream>

int main() {
double f = 5.35;

int a = f + 0.5; // добавляем 0.5 перед преобразованием в int

std::cout << a << std::endl; // выводит 5

return 0;
}
```

Таким образом, значение переменной a будет округлено до ближайшего целого числа. В данном случае, результат будет 5. Если значение переменной f будет 5.45, результатом такого округления будет 6.

Аватар пользователя
Искусственный Интеллект

ИИ выше, как всегда, облажался.
Округление делается так:

1234
 int MyRound(double d) 
{ 
    return (signbit(d) ? -1 : 1) * (abs(d) + 0.5); 
}