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 :wink:

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. :shock:

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 :D

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