exp() w C++ Builder 6

0

Mam sobie taki krótki kawałek prostego kodu uzytego w okienkowym projekcie:

double a, T=273, k=1.38e-23;
a = exp(8/(k*T));

No i mam problem bo funkcja przekracza swój zakres (exp: overflow error). No i problem w tym, że to sie dziać raczej nie powinno ponieważ to nie jest aż tak wielka liczba, zeby wyjść poza double, nawet we float chyba sie mieści. Więc co jest nie tak? Dodam że na dosowym Borland C++ działa bez problemu. Dodam, że Builder ma zaaplikowany service pack 4. Dzięki za wszelkie sugestie.

0

az taka duza ??? nie

dla k = 1.38*10^-9 (che che)

masz a rowne
1.35*10^9222158 !!!

poza tym kT w [J] wjdzie a wiec exp(E/kT)

0

Rzeczywiscie, mój głupi błąd. Ale dzięki za uświadomienie. Hmm, tylko jak mam policzyc ekponens tak wielkiej liczby, a nawet wiekszych.

0

Najpierw warto sie zastanowic czy taka wielkosc ma sens ?! a pozniej mozna probowac znalezc sposb na jej obliczenie ! (bo cos do tak duzej potegi to na prawde duzoooooooo)!

0

Mam wrazenie że jednoski są złe. kT jest w J, a E też brałem w J, a raczej powinienem w eV, wtedy da mniejszą liczbe. Po prostu w tym zadaniu nie podano mi konkretnej wartości energii oddziaływania spinów, miała być jednostkowa, ale raczej nie rzędu J.

1 użytkowników online, w tym zalogowanych: 0, gości: 1