IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Вывод с++
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Занятная штука выходит и не пойму почему выводит 0, а не вещественное число. Вот код
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
int main()
{ system("cls");
double h=1/4; //Ведь присваивается значение 0.25 или я что то не правильно понимаю
cout<<"h= "<<h<<endl;
getch();
return 0;
}


Сборка Turbo C++ Vercion 3.0
Работа через DosBox0.74
OS: WinXP SP3

Добавлено через 16 мин.
Все, извиняюсь за поспешный вопрос. Вспомнил. Ранее уже сталкивался с преобразованием типов. Надо было явно указать 1.0/4


Сообщение отредактировано: Account -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


КРЕСТОПРОБЛЕМЫ

А вот в нормальных языках хоть 1/4 и даёт целый ноль, но ты не сможешь присвоить его вещественному числу - пока не напишешь 1.0/4.0, программа просто не скомпилируется.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


TarasBer, Pascal? smile.gif

Account,
double h = (double) 1 / 4;


Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата(sheka @ 29.11.2011 17:31) *
TarasBer, Pascal?
В Паскале операция деления всегда возвращает вещественное число, и
f: double;
// ...
f := 1/4;

работает прекрасно. А вот в Аде все по-другому: или
   f : Float;

-- или
f := Float (1/4); -- f = 0
-- или
f := 1.0 / 4.0; -- f = 0.25
(Приведение только одного числа к Float-у проблемы не решит, программа не будет компилироваться, пока оба операнда не будут одного типа smile.gif )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> f := Float (1/4); -- f = 0

В таком случае, если честно, тоже ноль не интуитивно очевиден, но всё-таки, если человек поставил Float вокруг всего выражения, то он это уже сделал сознательно и сам виноват, если что, а не его невнимательность.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name