Seite 1 von 1
Float: anzahl der kommastellen
Verfasst: Mittwoch 28. April 2004, 16:21
von lionking
hallo erstmal,
ich möchte zwei ganze (grosse) Zahlen durcheinander teilen, aber ich bekomme nur 16 nachkommastellen.
gibt es ne möglichkeit noch mehr stellen zu berechnen lassen?
Danke schonmal
MFG
Verfasst: Mittwoch 28. April 2004, 17:03
von Dookie
Hi lionking,
was heißt nur 16 Nachkommastellen
mxNumber könnte interessant für Dich sein.
Gruß
Dookie
Verfasst: Mittwoch 28. April 2004, 18:28
von lionking
was is das und wo gibs das?
Verfasst: Mittwoch 28. April 2004, 21:20
von Dookie
wenn du auf den link klickst kommst du auf die seite, das ist ein Pytonmodul u.a. für beliebig genaue Fliesskommazahlen.
Gruß
Dookie
Verfasst: Mittwoch 28. April 2004, 21:21
von lionking
ok habs gefunden, aber nich verstanden, und auch keine anleitungen gefunden, ausser die auf der seite:
http://www.egenix.com/files/python/mxNumber.html
aber daraus bin ich nicht schlau geworden...
kann mir jemand helfen?
Code: Alles auswählen
#programm giebt die fibonacci-zahlen mit ihren teilern aus...
from mx.Number import *
a=Number.Integer(0)
b=Number.Integer(1)
while b<100000000000000000:
print a, '/', b, '=', Float(a, 128)/Float(b, 128)
a,b = b,a+b
PS:irgendwie geht BBcode nicht(ich habs aktiviert...
PPS: das mit precision geht nicht, da kommt n syntax.error...
Verfasst: Mittwoch 28. April 2004, 21:27
von Dookie
du hattest bbcode deaktiviert, ich habs nun aktiviert
wenn Du verrätst was du nicht verstehtst, kann dir sicher wer helfen.
Gruß
Dookie
Verfasst: Mittwoch 28. April 2004, 21:32
von lionking
also das programm gibt mir immernoch nur 16stellige zahlen, und ich weiss nich worans liegt, was ich falsch gemacht habe, und warum "precision"nich geht...
achja Danke für die superschnellen antworten, das is ja fast wie chatten
PS: smilies gehen auch nicht obwohl sie an sind...
oder mach ich was falsch?
Verfasst: Mittwoch 28. April 2004, 21:50
von Dookie
lies einfach mal genau was hinter den checkboxen steht.
Verfasst: Mittwoch 28. April 2004, 21:55
von Dookie
Ich würds mal so versuchen
Code: Alles auswählen
#programm giebt die fibonacci-zahlen mit ihren teilern aus...
from mx import Number
a=Number.Integer(0)
b=Number.Integer(1)
while b<100000000000000000:
print a, '/', b, '=', Number.Float(a, 128)/Number.Float(b, 128)
a,b = b,a+b
Dookie
Verfasst: Mittwoch 28. April 2004, 21:59
von Dookie
oder besser so:
Code: Alles auswählen
#programm giebt die fibonacci-zahlen mit ihren teilern aus...
from mx import Number
a=Number.Integer(0)
b=Number.Integer(1)
while b<100000000000000000:
print "%d / %d = %.32f" % (a,b,Number.Float(a, 128)/Number.Float(b, 128))
a,b = b,a+b
Dookie
Verfasst: Donnerstag 29. April 2004, 12:54
von lionking
Danke, schon besser, aber er gibt mir nach ner ganzen reihe von zahlen(die ich auch haben will eine Fehlermeldung:
Code: Alles auswählen
1134903170 / 1836311903 = 0.61803398874989490000000000000000
Traceback (most recent call last):
File "C:\Python233\fibonacci.py", line 11, in ?
print "%d / %d = %.32f" % (a,b,Number.Float(a, 128)/Number.Float(b, 128))
TypeError: int argument required
ausserdem sind die zusätzlichen nachkommastellen nur nullen...
juhuu jeztz hab ich das mit bbcode und smilies verstanden
Verfasst: Donnerstag 29. April 2004, 13:07
von Dookie
und so?
Code: Alles auswählen
#programm gibt die fibonacci-zahlen mit ihren teilern aus...
from mx import Number
a=0
b=1
while b<100000000000000000:
print "%d / %d = %s" % (a, b, (Number.Float(a, 128)/Number.Float(b, 128)).format(10,32))
a,b = b,a+b
Gruß
Dookie
Verfasst: Donnerstag 29. April 2004, 13:16
von lionking
da kommt sowas
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python233\fibonacci.py", line 9, in ?
print "%d / %d = %s" % (a, b, (Number.Float(a, 128)/Number.Float(b, 128)).format(10,32))
TypeError: format() takes exactly 1 argument (2 given)
aber wenn ich die 10 bei .format() wegnehme gehts, jedoch wieder nur mit 16nachkommastellen
noch ne frage: was bedeutet die 128 bei Number.Float(a, 128)? die kann man auch weglassen, da ändert sich nix
Verfasst: Donnerstag 29. April 2004, 14:12
von Dookie
die 128 ist die Anzahl von Bits die für die Floatdarstellung verwendet werden.
Sorry mxNumber lässt sich bei mir leider nicht installieren. Und ich kanns selber nicht testen.
Gruß
Dookie