Главная категория > Компьютеры, сканеры ШК, Клавиатуры, принтеры и ПО и т.д.

проблема с типом float.

<< < (2/5) > >>

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]

Кстати, проверил на Делфи, такой проблемы нет (в данном контексте).

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Произошла ошибка благодарности
Думаю...
Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 
Перейти к полной версии