matematykaszkolna.pl
VBA matroz: Witam Chcę napisać program w VBA do obliczania e z różną dokładnością, jako sumę szeregu 1/n! od 0 to n. Nie wiem czemu, ale nie działa jak powinien − wklejam: Sub e() Dim e As LongLong Dim silnia As LongLong n = InputBox("n = ?") silnia = 1 e = 0 For i = 1 To n silnia = silnia * i e = e + 1 / silnia Next i Cells(4, 3) = e + 1 End Sub Co ciekawe, kiedy zamiast e = e + 1 / silnia wpiszę e = e + silnia to policzy prawidłowo sumę silni. Nie może policzyć sumę odwrotności silni, mimo że kod wygląda na prawidłowy. Może jakaś wada VBA? Ma ktoś pomysł?
22 sie 23:20
matroz: już wiem − zmieniłem typ zmiennych z longlong na double i śmiga.
22 sie 23:45
matroz: może wiecie czemu nie działa mi typ longlong? mam office 64 bit. więc powinien działac
22 sie 23:51
zombi: Bo longlong to typ dla całkowitych, a double rzeczywiste? przecież masz e = e + 1 / silnia ułamek, więc nie możesz chyba zadeklarować e jako całkowitej.
22 sie 23:57
matroz: ok, nie wiedziałem że longlong jest dla całkowitych, nigdzie w necie tego nie znalazłememotka dzięki
23 sie 00:00