Форум программистов, компьютерный форум CyberForum.ru

setprecision() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 122, средняя оценка - 4.75
WonderMNS
12 / 12 / 1
Регистрация: 02.02.2010
Сообщений: 102
07.04.2010, 14:53     setprecision() #1
Есть задача:
Написать программу выводящую в текстовый файл таблицу значений функций
exp(x) и ln(x) на отрезке [1,4] с шагом 0,2. x выводить с одной цифрой
в дробной части, exp(x) с пятью, ln(x) с семью.
C++
1
2
3
4
    for(double x=1;x<4.2;x+=0.2){
        fout<<setw(3)<<setprecision(1)<<x
            <<setw(9)<<setprecision(5)<<exp(x)
            <<setw(11)<<setprecision(7)<<log(x)<<"\n";
Результат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  1   2.7183          0
  1   3.3201  0.1823216
  1   4.0552  0.3364722
  2    4.953  0.4700036
  2   6.0496  0.5877867
  2   7.3891  0.6931472
  2    9.025  0.7884574
  2   11.023  0.8754687
  3   13.464  0.9555114
  3   16.445   1.029619
  3   20.086   1.098612
  3   24.533   1.163151
  3   29.964   1.223775
  4   36.598   1.280934
  4   44.701   1.335001
Вопрос:
setprecision() по идее должен выводить с точностью до n знаков после точки, а выводит n знаков всего. В чем трабла?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2010, 14:53     setprecision()
Посмотрите здесь:

C++ setprecision() и setiosflags()
C++ setprecision() не работает, или работает не так как нужно
C++/CLI WinForms Два манипулятора fixed и setprecision() в CLI Windows Forms
Манипуляторы setprecision и fixed C++
C++ Унарная операция setprecision
C++ SETprecision. В чем ошибка?
C++ Использование манипулятора setprecision

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Psixodelik
 Аватар для Psixodelik
39 / 38 / 2
Регистрация: 27.11.2009
Сообщений: 93
07.04.2010, 14:59     setprecision() #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вроде нужно ещё использовать fixed ... именно он определяет колличество точек после запятой, к примеру
C++
1
2
3
4
double a=34.343434343434;//ну и так далее ))))
cout<<fixed;
cout<<setprecision(3);
cout<<a;
Попробуй так
WonderMNS
12 / 12 / 1
Регистрация: 02.02.2010
Сообщений: 102
07.04.2010, 15:02  [ТС]     setprecision() #3
Спасибо, то что надо!
Yandex
Объявления
07.04.2010, 15:02     setprecision()
Ответ Создать тему
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru