Велес |
Отправлено: 27.11.2003, 16:01 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 18
|
День добрый.
Вот и снова я и снова у меня ошибка какая-то непонятная.
Есть формула: K1 = exp(-F/k);
Простая формула, никаких вроде бы особенностей, но.... результаты работы этой формулы — 0!
Вот как такое понимать? фактически, программа выдаёт такой результат: K1 = exp(-8.45454) = 0;
А самое смешное, что при попытке вывода результата формулы: K1 = exp(F/K) выдаёт Overflow error
В чём может быть проблема?
Отредактировано Велес — 27/11/2003, 17:15 |
|
Guest |
Отправлено: 27.11.2003, 16:19 |
|
Не зарегистрирован
|
А какой тип у K1 ? Если int или long, то и будет 0.
Должно быть double.
CODE |
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double K1 = exp(-8.45454);
Label1->Caption = K1;
}
|
получаю в Label1 значение 0.00021293150856456
|
|
Велес |
Отправлено: 27.11.2003, 16:35 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 18
|
Аааааа, прошу прощения.... там немножко ошибка вышла, не всё напечатал и немножко не то: K1 = exp(-4,4929799453726-E-23)
2 Guest этот вариант-то работает, который вы предложили. Но видимо толи памяти не хватает..... K1 объявлено как long double
Отредактировано Велес — 27/11/2003, 17:41 |
|
Guest |
Отправлено: 27.11.2003, 18:23 |
|
Не зарегистрирован
|
CODE |
double K1 = exp(-4.4929799453726E-23);
Label1->Caption = K1;
|
Работает, выдает значение 1
---
Кстати, заметил, я использую . а вы , в разделении
дробной части числа. (Decimal symbol)
|
|