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

Умножение 22000.5 на 15 дает 330008, а должно 330007.5 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Атрибуты файла http://www.cyberforum.ru/cpp-beginners/thread633547.html
в чём ошибка? #include <iostream> #include <Windows.h> #include <io.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); WIN32_FIND_DATAA findData;
C++ Посоветуйте С++ компилятор Всех приветствую! Вопрос вероятно много раз задавался, но к сожалению нет времени на поиск по форуму. Качал несколько архивов с компиляторами и понял, что разобраться сам не смогу. То одной... http://www.cyberforum.ru/cpp-beginners/thread633483.html
Передвижение курсора в консоли Win32 и Linux C++
Привет форумчане, подскажите пожалуйска апишку для движения(управлением положения) курсора в консоли в Win32 и Linux.
Вопросы по С++ и не только (~40 вопросов) C++
Накопилось пару вопросов по языку. Буду благодарен за качественный ответ хотя бы на 1 вопрос. При ответе, указывайте пжлст номер. 1) char arr = "qwerty" эквиваленто char arr = {'q', 'w', 'e',...
C++ Autoit to C++ http://www.cyberforum.ru/cpp-beginners/thread633457.html
Здравствуйте, кто знает Autoit, перепишите на с++ пожалуйста) Func GETWOWBASEADDRESS($PID) $HSNAP = DllCall("Kernel32.dll", "HANDLE", "CreateToolhelp32Snapshot", "DWORD", 8, "DWORD", $PID) ...
C++ Статическая переменная в шаблоне // // (---.Array_hpp---) // #ifndef Array_HPP // Preprocessor gates #define Array_HPP #include <sstream> #include <iostream> #include <exception> подробнее

Показать сообщение отдельно
Нейкист
11 / 1 / 1
Регистрация: 04.08.2012
Сообщений: 8

Умножение 22000.5 на 15 дает 330008, а должно 330007.5 - C++

06.08.2012, 12:03. Просмотров 931. Ответов 8
Метки (Все метки)

Задание к третьей главе книги Дейтела.
Итак, суть проблемы в том, что при умножении 22000.5 на 15 почему то выводится 330008, хотя должно 330007.5
Вот код, программа из трех файлов:
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "Invoice.h"
#include <iostream>
using std::cout;
using std::endl;
 
int main()
{
    Invoice invoice1("Артикул продукта", "Описание продукта", 15, 22000.5);
    cout << "Продукт: " << invoice1.getArticulProduct() << endl
         << "Описание продукта: " << invoice1.getDescriptionProduct() << endl
         << "Количество единиц продукта: " << invoice1.getQuantityProduct() << endl
         << "Цена единицы продукта: " << invoice1.getCostProduct() << endl
         << "Цена за все продукты вместе: " << invoice1.getInvoiceAmount() << endl;
    return 0;
}



Invoice.h
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
#ifndef INVOICE_H
#define INVOICE_H
 
#include <string>
using std::string;
 
class Invoice
{
public:
    Invoice(string pArticulProduct, string pDescriptionProduct, int pQuantityProduct, double pCostProduct);//Конструктор
 
    void setArticulProduct(string pArticulProduct);//Устанавливает артикул продукта
    void setDescriptionProduct(string pDescriptionProduct);//Устанавливает описание продукта
    void setQuantityProduct(int pQuantityProduct);//Устанавливает количество единиц продукта
    void setCostProduct(double pCostProduct);//Устанавливает цену единицы продукта
    string getArticulProduct();//Возвращает артикул продукта
    string getDescriptionProduct();//Возвращает описание продукта
    int getQuantityProduct();//Возвращает количество единиц продукта
    double getCostProduct();//Возвращает цену единицы продукта
 
    double getInvoiceAmount();//Возвращает общую цену всех единиц продукта
 
private:
    string articulProduct;//Артикул продукта
    string descriptionProduct;//Описание продукта
    int quantityProduct;//Количество единиц продукта
    double costProduct;//Цена единицы продукта
};
#endif // INVOICE_H



Invoice.cpp
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
43
44
45
46
47
48
49
#include "Invoice.h"
#include <iostream>
using std::cout;
 
Invoice::Invoice(string pArticulProduct, string pDescriptionProduct, int pQuantityProduct, double pCostProduct)//Конструктор класса
{
    setArticulProduct(pArticulProduct);
    setDescriptionProduct(pDescriptionProduct);
    setQuantityProduct(pQuantityProduct);
    setCostProduct(pCostProduct);
}
void Invoice::setArticulProduct(string pArticulProduct)//Устанавливает артикул продукта
{
    articulProduct = pArticulProduct;
}
void Invoice::setDescriptionProduct(string pDescriptionProduct)//Устанавливает описание продукта
{
    descriptionProduct = pDescriptionProduct;
}
void Invoice::setQuantityProduct(int pQuantityProduct)//Устанавливает количество единиц продукта
{
    if(pQuantityProduct >= 0)
    quantityProduct = pQuantityProduct;
    else cout << "Количество единиц продукта не может быть отрицательным!\n";
}
void Invoice::setCostProduct(double pCostProduct)//Устанавливает цену единицы продукта
{
    costProduct = pCostProduct;
}
string Invoice::getArticulProduct()//Возвращает артикул продукта
{
    return articulProduct;
}
string Invoice::getDescriptionProduct()//Возвращает описание продукта
{
    return descriptionProduct;
}
int Invoice::getQuantityProduct()//Возвращает количество единиц продукта
{
    return quantityProduct;
}
double Invoice::getCostProduct()//Возвращает цену единицы продукта
{
    return costProduct;
}
double Invoice::getInvoiceAmount()//Возвращает общую цену всех единиц продукта
{
    return getCostProduct() * getQuantityProduct();
}


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