Seite 1 von 1
Mathe, mehrere Stellen?
Verfasst: 21.11.2008 22:14
von DrNo
Hallo,
Wie kann ich mit PB auf 1 Millionen stellen nach dem Komma ausrechnen, oder wenigstens 10...?
Also jetzt z.B. Wurzel 2 oder so.
Verfasst: 21.11.2008 22:23
von gnasen
bla.f = Sqr(2)
Debug bla
ist mehr als genug für den "normalen" Gebrauch
Verfasst: 21.11.2008 22:45
von KeyKon
Und für den übernormalen Bereich:
bla.
d = Sqr(2)
Debug bla
Um das in Programmen auszugeben musst du natürlich entsprechend StrF() bzw. StrD() benutzen, da kannst du auch angeben wie viele Nachkommastellen ausgegeben werden sollen, dabei ist Double (.d) doppelt so genau wie Float (.f) aber beide sind nicht unendlich genau...
Verfasst: 22.11.2008 01:37
von STARGÅTE
in PB selber gabs dafür keine Funktion.
Was du machen kannst ist, dei Proceduren für "hoch genaue" Zahlen zu schreiben, wo man dann Addieren und Multiplizieren kann, (gibs auch schon im CodeArchiv)
danach kannst du für das Wurzelziehen zB das Newton-Verfahren oder Heron-Verfahren nutzen, beide können eine beliebig genau ziehen, jodoch mit steigendem Rechenaufwand.
Verfasst: 22.11.2008 03:48
von AND51
STARGÅTE hat geschrieben:in PB selber gabs dafür keine Funktion.
Nicht ganz richtig.
Es gibt den Datentyp Double ".d", der rechnet auf bis zu 308 Stellen nach dem Komma. Zwar nicht unbedingt sooo genau, aber immerhin. Mit
StrD(zahl.d, stellen) kannst du bei der Ausgabe dieser Zahl die Anzahl der Nachkommastellen erzwingen.
Wenn du wirklich genau und mit möglichst vielen Nachkommastellen rechnen willst (1 Mio. halte ich für übertrieben), kriegst du das mE nur hin, wenn du Die zahlen als Strings behandelst und mittels eigener Prozeduren mit diesen "String-Zahlen" rechnest.
Verfasst: 22.11.2008 10:06
von STARGÅTE
Es gibt den Datentyp Double ".d", der rechnet auf bis zu 308 Stellen nach dem Komma.
Nicht ganz richtig.
das heißt nur das er Zahlen die ca 308 Stellen HÄTTEN anzeigen kann:
Code: Alles auswählen
a.d = 1e100
b.d = 1e200
c.d = 1e300
d.d = 1e400
Debug a
Debug b
Debug c
Debug d
Die Genauigkeit von Wurzel(2) bleibt jedoch bei knapp 20 Stellen:
x.d = Sqr(2)
Debug StrD(x,50)
da nützt es auch nix StrD() n hohe nachkommastellen zu geben
Verfasst: 22.11.2008 12:52
von mk-soft
Gab mal eine LIB "pbAPM". Ist aber leider nicht mehr zu PB 4.xx kompatible.
Muss man mal nach eine 'C' LIB oder DLL suchen.