C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Формула банальная, а приложение даёт 0
Велес
Отправлено: 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)

Вернуться в Вопросы программирования в C++Builder