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

Подскажите почему происходит ошибка в вычислении - C++

Восстановить пароль Регистрация
 
bogdan_92
Сообщений: n/a
14.10.2012, 20:25     Подскажите почему происходит ошибка в вычислении #1
При введении следующих параметров (60 2.3 3) выходит ответ 4rub. 13cop. хотя должен выдавать 4rub. 14cop. , не могу разобраться почему происходит такая ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ float  gas_consumption, l_price, cost, prior_cost_cop;
int distance, cost_rub, cost_cop;
printf("Enter next values:\ndistance to the country house\ngas consumption\nliter price\n");
scanf("%d %f %f", &distance, &gas_consumption, &l_price);
cost=(distance*gas_consumption/100)*l_price;
printf("%f\n",cost);
cost_rub=cost;
prior_cost_cop=cost-cost_rub;
printf("%f\n",prior_cost_cop);
cost_cop=prior_cost_cop/0.01;
printf("cost of the trip to the country house = %drub. %dcop.\n", cost_rub,cost_cop);
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 20:25     Подскажите почему происходит ошибка в вычислении
Посмотрите здесь:

Почему не происходит ошибка при обращении к недопустимому индексу C++
C++ Почему не происходит изменения
Почему не работает sqrt? Подскажите, где ошибка? Простенькая программа с тремя функциями C++
C++ Ошибка в вычислении выражения
ошибка вычислении или переполнение C++
C++ Почему происходит ошибка при описании массива?
C++ Почему выводит неверный результат при вычислении произведения?
Ошибка в вычислении разности матриц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.10.2012, 20:42     Подскажите почему происходит ошибка в вычислении #2
это особенности работы с числами с плавающей точкой.
вот сюда посмотрите
http://liveworkspace.org/code/585f80...d5d08c294e162a
если копейки выводить как число с плавающей точкой, то выражение prior_cost_cop/0.01 равно 13,9999...
в вашем же варианте это 13.999999 преобразуется в целое число. в таком случае все, что после запятой отбрасывается и получается 13
Yandex
Объявления
14.10.2012, 20:42     Подскажите почему происходит ошибка в вычислении
Ответ Создать тему
Опции темы

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