Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
1

Округление мелкого числа до 0

05.06.2011, 17:49. Просмотров 844. Ответов 5
Метки нет (Все метки)

Всем привет, времени мало поэтому пишу сюда
суть такова - нужно сделать перемножение матриц 3х3 типа double потом вывести на экран

все выходит хорошо, но есть 1 штука от которой я хочу избавится


я так понимаю это 1.9 в -16 степени, т.е --> 0
так вот как сделать так чтобы выводился на экран ноль а не эта штукенция?

фрагмент программы
C++
1
2
3
4
5
6
7
8
    void print() {
        for (int i=0; i<3; i++) {
            for (int j=0; j<3; j++) {
                std::cout << std::setw(7) << std::setprecision(2) << data[i][j];
            }
            std::cout << '\n';
        }
    }
пробывал
std::cout.unsetf(std::ios_base::scientific);
не помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 17:49
Ответы с готовыми решениями:

Округление числа
Кто-нибудь может подробно-подробно объяснить, как округлять числа в C++. А то я...

Округление числа
Если разложение в ряд тейлора и поиск сумы и заданая точность е.И вот нам надо...

Округление числа
Не пойму, почему компилятор пишет Выражение должно иметь целочисленный или...

Округление числа до десятых
Как округлить число до целого я знаю, s=(s-floor(s)&lt;0.5)?floor(s):ceil(v) а...

Вещественные числа и округление
Или я туплю, или долго сижу, но вот никак не могу решить такую задачу: есть...

5
gooseim
Эксперт С++
511 / 415 / 92
Регистрация: 23.09.2010
Сообщений: 1,159
05.06.2011, 18:06 2
попробуй std::cout<<std::fixed
1
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
05.06.2011, 18:16  [ТС] 3
хм, спасибо помогло, запомню на будущее

ну я правда решил проблему другим путем
C++
1
2
3
    
if (fabs(data[i][j])<0.001) data[i][j]=0.0;
std::cout << std::setw(8) << std::setprecision(2) << data[i][j];
заодно очищу массив от ненужной мелочи )
0
grizlik78
Эксперт С++
1987 / 1480 / 191
Регистрация: 29.05.2011
Сообщений: 3,059
05.06.2011, 18:22 4
Цитата Сообщение от OstapBender Посмотреть сообщение
ну я правда решил проблему другим путем
C++
1
2
if (fabs(data[i][j])<0.001) data[i][j]=0.0;
std::cout << std::setw(8) << std::setprecision(2) << data[i][j];
А 0.009 при этом нормально выводится? Просто лень самому проверять
0
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
06.06.2011, 00:36  [ТС] 5
Цитата Сообщение от grizlik78 Посмотреть сообщение
А 0.009 при этом нормально выводится? Просто лень самому проверять
да все норм с 0.009,
а что такое?
0
grizlik78
Эксперт С++
1987 / 1480 / 191
Регистрация: 29.05.2011
Сообщений: 3,059
06.06.2011, 00:40 6
Да я просто не помню, с какого момента он к научной записи переходит. Но раз нормально всё, то хорошо.
0
06.06.2011, 00:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 00:40

Округление дробового числа
Здраствуйте . Нужно написать программку. У пользователя должны спросить какое...

Погрешность числа (округление)
Всем привет,есть алгоритм в котором производится операция умножения часто. В...

Быстрое округление числа
Здравствуйте уважаемые программисты! Подскажите как быстрее всего округлить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru