Главная категория > Компьютеры, сканеры ШК, Клавиатуры, принтеры и ПО и т.д.
проблема с типом float.
tridentxp:
прикооллл. а как такое понимать ??? ?
void __fastcall TForm1::frequencyChange(TObject *Sender)
{float f,f1,freq;// ,a
unsigned int int_freq,a;
AnsiString s;
for(a=1;a<11;a++)if ((frequency->Text[a])!='.') s+=frequency->Text[a];
freq=StrToFloat(s);if (freq==0) goto end;
int_freq=StrToInt(s);
a=(60000000/int_freq);
f=60000000/(float)a;f1=60000000/ (float) (a+1);
actual_freq->Caption="Actual frequency : "+ FloatToStr(f)+" a="+IntToStr(a)+" f1="+FloatToStr(f1);
if ( (freq-f)>(freq-f1) ) f=f1;
end:
}
SkaT:
А что не ток-то, ты напиши.
Вроде всё верно. f1, отличается от калькулятора компа только в пятой цифре после запятой.
Что не нравится???
Если целое значение результата f=60000000/(float)a
То думаю компилятору (float) не достаточно.
tridentxp:
60 000 000 / 53571 = 1120,0089600716805734445875567005 - дробное число, а выводится без дробной части.
tridentxp:
:o бред какой то - ща с дробной частью выдаёт - мистика...
SkaT:
Я ещё у тебя не вижу инициализации строковой переменной s.
Лучше самому следить за начальными значениями переменных а не доверять компилятору, и тем более компу.
Отклоняясь от темы.
Уже несколько раз показывали передачу по "кабельному".
Ученый, установил по всему миру кучу генераторов "RND".
Если в мире всё "в рамках", то "RND" даёт 50% нулей и 50% единиц.
Но не за долго до катастроф начинается отклонение от 50/50.
Так что "мыслеформы" влияют на работу процессора...
[size=78%]:)[/size]
Кстати, проверил на Делфи, такой проблемы нет (в данном контексте).
Навигация
Перейти к полной версии