C++ Муки округления. Как «красиво» сделать следующие функции? Приветствую!
Есть, к примеру, число типа double 43.210002
требуется
привести число к виду 43.2100000000
т.е. оставить число до сотых, остальное забить нулями (например до 4 после сотых).
так же требуется потом просто убрать точку т.е. сделать число "целым" без округлений.
Сделал через строку, но это напоминает адцкий костыль.
Подскажите, пожалуйста, как правильнее?

21 Авг 2019 в 06:11
145 +1
1
Ответы
1

Вот пример кода на C++, который выполняет указанные вами задачи без использования строк:

#include <iostream>
#include <cmath>
double roundToNDecimals(double value, int decimals) {
double factor = pow(10, decimals);
return round(value * factor) / factor;
}
double removeDecimalPoint(double value) {
return floor(value);
}
int main() {
double number = 43.210002;
// Округляем до 4 знаков после запятой
double roundedNumber = roundToNDecimals(number, 4);
std::cout << "Округленное число: " << roundedNumber << std::endl;
// Убираем точку
double integerNumber = removeDecimalPoint(number);
std::cout << "Число без десятичной части: " << integerNumber << std::endl;
return 0;
}

Этот код определяет две функции: roundToNDecimals, которая округляет число до указанного количества десятичных знаков, и removeDecimalPoint, которая просто убирает десятичную точку.

Надеюсь, это поможет вам решить вашу задачу более "красиво" и без использования строк.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир