Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Деление в C++
 
 автор: Hrust   (03.12.2007 в 01:00)   письмо автору
 
 

Здрасте. Возникла такая проблема: 1/5 например или 1\43 выводиться на экран почему-то 0. Любая дробь где числитель меньше знаменателя почему-то = 0. Если взять например 43/2 то все нормально. Я никак не могу понять этого! переменные пробовал и double и float. В литературе ни где подобное не описано, или я слепой.
Помогите пожалуйста!

a=1/8;
cout<< a;
на экране 0
с принтф тоже самое.

  Ответить  
 
 автор: cheops   (03.12.2007 в 03:22)   письмо автору
 
   для: Hrust   (03.12.2007 в 01:00)
 

Результат автоматически приводится к целому числу (так как вы целое делите на целое) - следует явно привести его к дробному
#include <iostream>
using namespace std;

int main()
{
  double a = (double)1/8;
  cout << a;

  return 0;
}

или вместо 1 и 8 используйте соответственно 1.0 и 8.0.
#include <iostream>
using namespace std;

int main()
{
  double a = 1.0/8.0;
  cout << a;

  return 0;
}

  Ответить  
 
 автор: alex19921992   (04.12.2007 в 01:10)   письмо автору
 
   для: cheops   (03.12.2007 в 03:22)
 

А если работаете с типом float, то:

float f=1.0f/8.0f

  Ответить  
 
 автор: Hrust   (04.12.2007 в 09:20)   письмо автору
 
   для: alex19921992   (04.12.2007 в 01:10)
 

Большое спасибо! А то у нас вся группа, мучается! А учителя ничего не могут объяснить.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования