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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
#1

Неточность конвертера валюты - C++

04.06.2013, 16:50. Просмотров 485. Ответов 14
Метки нет (Все метки)

Вопрос наверное, такой нубский, но автор видеоуроков мне в скайпе не отвечает и я хочу спросить у вас.
В чем проблема? Точность в конвертере подхрамывает. Если, например, в 1000 рублях 23.9998 евро, то он выводит 24, а если 23.22134 то выводит просто 23.
----
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
#include <iostream>
#include <conio.h>
 
   using std::cout;                                                         
   using std::cin;                                                          
   using std::endl;                                                        
 
int main()
{
 
    setlocale(LC_ALL, "Russian");
 
    int rub;                                                               
    int euro;                                                              
    int dollar;                                                            
    unsigned long long belrub;                                             
    int ce = 0.024;                                                        
    int cd = 0.0312;                                                       
    unsigned long long cb = 271.1497;                                      
 
    cout << "Введите количество рублей:";
    cin >> rub;                                                            
 
    euro = (double)rub * (double)ce;                                      
    dollar = (double)rub * (double)cd;                                     
    belrub = (unsigned long long)rub * (unsigned long long)cb;            
    
    cout << "\n\nЭто " << euro << " евро.\n";
    cout << "Это " << dollar << " доллара.\n";
    cout << "Это " << belrub << " белорусских рублей.\n";
 
 
    getch();
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 16:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неточность конвертера валюты (C++):

Написать программу пересчет валюты, курс валюты - C++
программа пересчета валюты.курс доллара -30.75 курс евро-39.83 оформить как константы.курс валюты ($ -доллар, e - евро, p - рубль)

Неточность результата - C++
Напишите программу, которая выдавала бы запрос на ввод расхода бензина в европейском стиле (количество литров на 100 км) и преобразовывала...

Неточность операций с float - C++
Здравствуйте. У меня в цикле осуществляется итерация вида float time += 0.1; при этом возникает ошибка, например 0.3 + 0.1 =...

Подскажите в чем неточность - C++
Добрый день. Хочу немного узнать С++ Для начала хотел скачать кимпилятор. Скачал MinGW Далее скачал еклипс. Начал немного розбираться....

Неточность функции поиска угла - C++
написал функцию нахождения угла по 3-м точкам int LengthBetweenPoints(point a,point b) { return...

Алгоритм для конвертера валют - C++
Вот с разных источников, и с помощью людей слепил как-то код программы для конвертирования валют на С++. В программировании я ноль, а в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sinewy
3 / 3 / 0
Регистрация: 02.06.2013
Сообщений: 14
04.06.2013, 16:56 #2
Замените типы на double
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 16:58  [ТС] #3
Цитата Сообщение от Sinewy Посмотреть сообщение
Замените типы на double
Заменил. Точность повыше, но всеравно, не со 100% точностью. Можно ли немного поточнее?
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:01 #4
Цитата Сообщение от Surges Посмотреть сообщение
C++
1
2
int ce = 0.024; * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * int cd = 0.0312;
Тоже double

Добавлено через 47 секунд
Цитата Сообщение от Surges Посмотреть сообщение
C++
1
unsigned long long cb = 271.1497;
и это тоже
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 17:02  [ТС] #5
Все типы заменил на дабл, кроме int main.

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
/*
///////////////////////////////////
by Small Virgin                  //
be free                          //
///////////////////////////////////
*/
#include <iostream>
#include <conio.h>
 
   using std::cout;                                                         // Возможность cout ходить без std
   using std::cin;                                                          // С
   using std::endl;                                                        // Сокращение std::endl
 
int main()
{
 
    setlocale(LC_ALL, "Russian");
 
    double rub;                                                               //Рубли
    double euro;                                                              //Евро
    double dollar;                                                            //Доллар
    double belrub;                                             //Белорусский рубль
    double ce = 0.024;                                                        //В одном рубле столько евро
    double cd = 0.0312;                                                       // В одном рубле столько долларов
    double cb = 271.1497;                                      // В одном рубле столько белорусских рублей
 
    cout << "Введите количество рублей:";
    cin >> rub;                                                            //  Здесь я ввожу кол-во рублей для конвертера валюты
 
    euro = (double)rub * (double)ce;                                       //Вычисления евро
    dollar = (double)rub * (double)cd;                                     //Вычисление доллара
    belrub = (unsigned long long)rub * (unsigned long long)cb;             // Вычисление белорусского рубля
    
    cout << "\n\nЭто " << euro << " евро.\n";
    cout << "Это " << dollar << " доллара.\n";
    cout << "Это " << belrub << " белорусских рублей.\n";
 
 
    getch();
   return 0;
}
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.06.2013, 17:04 #6
Не стоит использовать double для финансовых операций.
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:04 #7
Цитата Сообщение от Surges Посмотреть сообщение
C++
1
2
3
euro = (double)rub * (double)ce; * * * * * * * * * * * * * * * * * * * //Вычисления евро
* * dollar = (double)rub * (double)cd; * * * * * * * * * * * * * * * * * * //Вычисление доллара
* * belrub = (unsigned long long)rub * (unsigned long long)cb; * * * * * * // Вычисление белорусского рубля

C++
1
2
3
euro = rub * ce; * * * * * * * * * * * * * * * * * * * //Вычисления евро
dollar = rub * cd; * * * * * * * * * * * * * * * * * * //Вычисление доллара
belrub = rub * cb; * * * * * * // Вычисление белорусского рубля
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 17:04  [ТС] #8
Цитата Сообщение от Ezembi Посмотреть сообщение
Тоже double

Добавлено через 47 секунд

и это тоже
Заменил, точность подросла. Теперь она где-то 85%. Но как сделать 100% ? Чтобы не 31,2 а 31,2025 ?
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:07 #9
Цитата Сообщение от Surges Посмотреть сообщение
Заменил, точность подросла. Теперь она где-то 85%. Но как сделать 100% ? Чтобы не 31,2 а 31,2025 ?
C
1
printf("\n\nЭто %lf евро.\n",euro);
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 17:13  [ТС] #10
Цитата Сообщение от Ezembi Посмотреть сообщение
C
1
printf("\n\nЭто %lf евро.\n",euro);

В евро появились лишние нули, но в долларах 31.2 осталось также.
Миниатюры
Неточность конвертера валюты  
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:16 #11
Цитата Сообщение от Surges Посмотреть сообщение
В евро появились лишние нули, но в долларах 31.2 осталось также.
После? :
C
1
printf("\n\nЭто %lf
Добавлено через 31 секунду
везде на printf заменили?
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 17:21  [ТС] #12
Цитата Сообщение от Tulosba Посмотреть сообщение
Не стоит использовать double для финансовых операций.
ну а как тогда быть? ваши предложения?
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:24 #13
0.0312*1000=31,2 не?

Добавлено через 1 минуту
0.024*1000=24,0 не?

Добавлено через 1 минуту
у вас коэффициенты неточные
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
04.06.2013, 17:26  [ТС] #14
Цитата Сообщение от Ezembi Посмотреть сообщение
После? :
C
1
printf("\n\nЭто %lf
Добавлено через 31 секунду
везде на printf заменили?
Заменил теперь везде на printf . И теперь в долларах и бел. рублей появились лишние нули.

Добавлено через 1 минуту
Цитата Сообщение от Ezembi Посмотреть сообщение
0.0312*1000=31,2 не?

Добавлено через 1 минуту
0.024*1000=24,0 не?

Добавлено через 1 минуту
у вас коэффициенты неточные
Омг. Значит, конвертер майл ру подвел. Через калькулятор так, как вы написали. Извините.
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 17:27 #15
Цитата Сообщение от Surges Посмотреть сообщение
Омг. Значит, конвертер майл ру подвел. Через калькулятор так, как вы написали. Извините.
Бывает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 17:27
Привет! Вот еще темы с ответами:

Графический интерфейс для конвертера валют - C++
Помогите создать конвертер валют и графический интерфейс для него. всю голову поломала но ничего не получилось.

Написание конвертера - C++
В общем на курсовой попалась тема конвертер следующих форматов: BMP -&gt; AVI BMP -&gt; EMF BMP -&gt; ICO BMP -&gt; JPG BMP -&gt; RTF ICO -&gt;...

Неточность в понимании условия задачи "Жук" (acmp) - C++
Моё решение: #include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; ...

Перевод одной валюты по курсу на несколько - C++
Приветствую вас форумчани,на копилятор Jv studio нужно написать код:есть определенная сумма в грн,цена за 1долар,1евро,1фунт...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.06.2013, 17:27
Ответ Создать тему
Опции темы

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