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

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

Восстановить пароль Регистрация
 
Zanoza
 Аватар для Zanoza
9 / 9 / 1
Регистрация: 16.03.2010
Сообщений: 44
10.04.2010, 12:13     при вычислении выражении - одно значение,а в калькуляторе другое! #1
есть,самое простое выражение:
21/5*3
но на калькуляторе будет - 21/5=4.2(логично?) и умноженное 4.2*3=12.6(и не поспоришь!)
так вот - а это же самое выражение, только в консоли:
C++
1
2
3
float k;
 
 k=21/5*3 ; cout<<k;
выдает 12
куда делась дробная часть?!
наверное сегодня не мой день!!!
обьясните,в чем я не прав?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2010, 12:13     при вычислении выражении - одно значение,а в калькуляторе другое!
Посмотрите здесь:

C++ Замена слова одно на другое с fgets
Заменить в строке одно слово на другое, заданное с клавиатуры. C++
C++ Как пересчитать одно в другое?
С моим кодом что-то не так! на калькуляторе одно число,а в программе другое( C++
C++ Определить номера строк матрицы, содержащих хотя бы одно заданное значение, и умножить их на другое
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
10.04.2010, 12:15     при вычислении выражении - одно значение,а в калькуляторе другое! #2
Zanoza, у вас 21, 5 и 3 - int. А для int оператор / означает деление нацело. Надо сделать, чтобы они были float:
C++
1
2
3
float k;
 
 k=21.0/5.0*3.0 ; cout<<k;
Zanoza
 Аватар для Zanoza
9 / 9 / 1
Регистрация: 16.03.2010
Сообщений: 44
10.04.2010, 12:21  [ТС]     при вычислении выражении - одно значение,а в калькуляторе другое! #3
точно!
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
10.04.2010, 12:35     при вычислении выражении - одно значение,а в калькуляторе другое! #4
C++
1
printf("%f",21/(5*3*1.0));
Ещё как вариант знаминатель домножить на 1.0
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.04.2010, 12:55     при вычислении выражении - одно значение,а в калькуляторе другое! #5
Цитата Сообщение от Demihalf Посмотреть сообщение
Zanoza, у вас 21, 5 и 3 - int. А для int оператор / означает деление нацело. Надо сделать, чтобы они были float:
C++
1
2
3
float k;
 
 k=21.0/5.0*3.0 ; cout<<k;
Вот только 21.0, 5.0, 3.0 не являются литералами типа float, это литералы типа double. Поправленный вариант:
C++
1
float k = 21.0f / 5.0f * 3.0f;
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
10.04.2010, 13:42     при вычислении выражении - одно значение,а в калькуляторе другое! #6
CyBOSSeR, все равно они приведутся к float, разве есть разница?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.04.2010, 13:52     при вычислении выражении - одно значение,а в калькуляторе другое! #7
Цитата Сообщение от Demihalf Посмотреть сообщение
CyBOSSeR, все равно они приведутся к float, разве есть разница?
Если бы разницы не было, то и литералы бы не различались. Зачем возлагать на компилятор дополнительную работу, если можно просто сделать так как принято?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2010, 13:57     при вычислении выражении - одно значение,а в калькуляторе другое!
Еще ссылки по теме:

C++ Заменить в тексте одно слово на другое
C++ Проверить, делиться ли нацело одно число на другое
Можно ли нацело разделить одно число на другое C++

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

Или воспользуйтесь поиском по форуму:
Genius Ignat
10.04.2010, 13:57     при вычислении выражении - одно значение,а в калькуляторе другое!
  #8

Не по теме:


Пишите doulbe больше поместится......

Yandex
Объявления
10.04.2010, 13:57     при вычислении выражении - одно значение,а в калькуляторе другое!
Ответ Создать тему
Опции темы

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