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

Что дописать в код, чтобы программа не округляла результат? - C++

Восстановить пароль Регистрация
 
Ammandus
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 23
08.09.2011, 15:11     Что дописать в код, чтобы программа не округляла результат? #1
Что дописать в код, чтобы программа не округляла результат?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
  double vklad,procent,n,rez=0; //nach summa, % stavka 
  int gg; //kolich. let
 
  cout << "Vvedite nachal'nyi' vklad: ";
  cin >> vklad;
  cout << "Vvedite chislo let: ";
  cin >> gg;
  cout << "Vvedite %-nyu stavky: ";
  cin >> procent;
 
  for (int i=0; i<gg; i++)
  {
     cout << vklad << endl;
     n = vklad/100*procent;
     cout << procent << endl;
     rez = vklad+n;
     vklad = rez;
    
  }
 
  
  cout << "Cherez " << gg;
 
  if (gg%10==1)
    cout << " god";
  else 
    if (gg%10==2 || gg%10==3 || gg%10==4)
      cout << " goda";
    else 
      if (gg%10==5 || gg%10==6 || gg%10==7 || gg%10==8 || gg%10==9)
        cout << " let";
  
  cout << " vi poluchite: " << rez+0.005 << endl;
 
  return 0;
}
Например:сумма вклада - 3000р.,2года,5% = 3339,08(а в виндовс калькуляторе = 3339,075)

Добавлено через 2 минуты
если убираю rez+0.005, то пишет 3339,07 - тоже округляет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 15:11     Что дописать в код, чтобы программа не округляла результат?
Посмотрите здесь:

Что нужно дописать в программу чтобы она оставалась на экране 10 секунд C++
C++ Ведется набор цифр и надо чтобы программа из него сама сообразило число. То есть что бы программа сама раскидывала их по разрядам.
C++ Нужно чтобы программа перезаписывала результат каждые 30сек
C++ Код не работает,говорит,что не знает,что такое delay(100).в чём проблема?как сделать,чтоб программа заработала?
C++ что нужно изменить чтобы прога давала нормальный результат?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
08.09.2011, 16:50     Что дописать в код, чтобы программа не округляла результат? #2
Забавно то, что приведенный вами код у меня на 3000р 2х годах и 5% выдал 3307.5, а не 3339,08
Ammandus
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 23
08.09.2011, 17:25  [ТС]     Что дописать в код, чтобы программа не округляла результат? #3
это потому что 5.5 вы ввели в русской раскладке, а на цифровом блоке справа это будет не '.', а ','. Поэтому все что будет после символа ',' - не прочитается компилятором. Попробуйте переключиться на английский язык или ввести точку в любой раскладке - тогда результат будет верным.

Добавлено через 10 минут
прошу прощения, ошибся - я имел ввиду 5.5% годовых. Спасибо, что заметили.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.09.2011, 17:40     Что дописать в код, чтобы программа не округляла результат? #4
используйте
C
1
printf()
wiki_printf()
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
08.09.2011, 17:52     Что дописать в код, чтобы программа не округляла результат? #5
C++
1
#include <iomanip>
там используйте -std::setprecision - задает количество знаков после запятой в при выводе чисел с плавающей точкой

Добавлено через 2 минуты
например

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <iomanip>
 
int main()
{
    float flDigit = 1.0;
    std::cout<<"Floating point "<<std::fixed<<std::setprecision(4)<<flDigit<<std::endl;
        return 0;
}
Ammandus
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 23
09.09.2011, 08:44  [ТС]     Что дописать в код, чтобы программа не округляла результат? #6
Спасибо огромное, сейчас буду тестить )))))))))))

Добавлено через 35 минут
у меня все получилось, спасибо вам огромное!!! )))))))
Yandex
Объявления
09.09.2011, 08:44     Что дописать в код, чтобы программа не округляла результат?
Ответ Создать тему
Опции темы

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