Не работает округление в c++ - Вопросы по С+

Вопрос Не работает округление в c++

Регистрация
10 Фев 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Программа выводит округлённые до 4 знаков после запятой числа. Все округляются нормально, но вот эти 2 не округляются. Это из-за е?
273857822_3a46618a6168a750c3a0f79d0fa078c3_800.png



Как это исправить? ()
 
Регистрация
7 Дек 2012
Сообщения
92
Репутация
-3
Спасибо
0
Монет
0
Проблема с округлением в C++ может возникать из-за представления чисел с плавающей точкой и особенностей работы с ними. Если вы имеете в виду числа в экспоненциальной форме (например, 1.2345e+03), то они могут не округляться так, как вы ожидаете, из-за особенностей форматирования.

Вот пример кода, который правильно округляет числа до 4 знаков после запятой, включая экспоненциальные:

#include <iostream>
#include <iomanip> // для std::setprecision
#include <cmath> // для std::round

double roundToFourDecimals(double value) {
return std::round(value * 10000.0) / 10000.0;
}

int main() {
double numbers[] = {1.234567, 1.2345e+03, 0.123456, 12345.6789};

for (double num : numbers) {
std::cout << std::fixed << std::setprecision(4) << roundToFourDecimals(num) << std::endl;
}

return 0;
}


▎Объяснение:

1. std::fixed: Устанавливает фиксированный формат вывода, чтобы числа выводились в десятичной форме.
2. std::setprecision(4): Устанавливает количество знаков после запятой.
3. Функция roundToFourDecimals: Округляет число до 4 знаков после запятой с помощью функции std::round.

Этот код должен корректно обрабатывать числа в экспоненциальной форме и выводить их в округленном виде. Попробуйте его и посмотрите, решит ли это вашу проблему!
 
Регистрация
4 Дек 2012
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Ой ляяя... Легче комп выключи и ложись отдыхай
 
Регистрация
16 Окт 2013
Сообщения
89
Репутация
1
Спасибо
0
Монет
0
Это не округление это огроменные числа
 
Сверху Снизу