Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод значения float

40K
15 января 2009 года
*Denis
6 / / 16.09.2008
Кто нибудь может ламеру объяснить, как такое может быть:

Код:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
float kkk;
double ddd;
AnsiString s;

kkk = 1/2;
ShowMessage(FloatToStr(kkk)); // Выводит 0

ddd = 20/40;
ShowMessage(FloatToStr(ddd)); // Выводит 0

s = FloatToStrF(kkk,ffFixed,5,5);
ShowMessage(s); // Выводит 0.00000

s = FloatToStrF(kkk,ffGeneral,5,5);
ShowMessage(s); // Выводит 0
}


Я с ума сошёл?
397
15 января 2009 года
SergPas
527 / / 03.02.2007
Цитата: *Denis
Я с ума сошёл?


Х.З.
Работает только при явном приведении типов:[FONT=monospace]
[/FONT]

 
Код:
kkk = (float) 1/2;
ddd = (double) 20/40;
3
15 января 2009 года
Green
4.8K / / 20.01.2000
Цитата: *Denis

Я с ума сошёл?


Здесь люди от IT, а не от медицины... :D

Учи матчасть!
Ты делишь целое на целое и сл-но получаешь целое.
Если хочешь float, один из аргументов должен быть float.

40K
15 января 2009 года
*Denis
6 / / 16.09.2008
Спасибо, что не дали окончательно спятить :)
479
16 января 2009 года
Ухух
142 / / 05.05.2006
Я в таких случаях пишу так:
1.0/2
20.0/40
Этот фокус иногда в формулах может встретиться. У частного достаточно у одной константы явно указать что она плавающая.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог