Округлить до ближайшего кратного пяти с ++ - PullRequest
0 голосов
/ 08 ноября 2019

Я, ребята, у меня небольшая проблема с округлением вниз.

Я бы округлил число до ближайшего кратного пяти.

Вот несколько примеров:

4 -> 0

67 -> 65

23 -> 20

44 -> 40 

59 -> 55

Я пытался по-разному, но я не могу этого сделать.

Есть ли какой-нибудь способ сделать это?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Предполагая, что ваш номер хранится в целочисленном формате, вы можете использовать целочисленное деление для этого:

int a = 44;
int r = (a/5) * 5; //will round down to 40
0 голосов
/ 08 ноября 2019

Если у вас есть переменные типа int , вы можете использовать тот факт, что деление их на другое int даст вам целое число, так что если вы умножите снова на это числовы получите то, что хотите.

Итак:

int a = 59;
std::cout << ((a / 5) * 5) << "\n";

выведет 55.

Если значения не сохранены как целые числа, вы можете привести их перед выполнениемделение:

float a = 59;
std::cout << ((static_cast<int>(a) / 5) * 5) << "\n";
...