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
}
Вывод значения float
Кто нибудь может ламеру объяснить, как такое может быть:
Цитата: *Denis
Я с ума сошёл?
Х.З.
Работает только при явном приведении типов:[FONT=monospace]
[/FONT]
Код:
kkk = (float) 1/2;
ddd = (double) 20/40;
ddd = (double) 20/40;
Цитата: *Denis
Я с ума сошёл?
Здесь люди от IT, а не от медицины... :D
Учи матчасть!
Ты делишь целое на целое и сл-но получаешь целое.
Если хочешь float, один из аргументов должен быть float.
Спасибо, что не дали окончательно спятить :)
1.0/2
20.0/40
Этот фокус иногда в формулах может встретиться. У частного достаточно у одной константы явно указать что она плавающая.