Hallo Gemeinde,
ich arbeite gerade an den Daten, die ich aus einer Simulation bekomme, die ich mit Python (Enthought 5.0, i.e. Python 2.5.4) geschrieben habe. An einer Stelle taucht ein Effekt auf, denn ich nicht nachvollziehen kann - ich vermute aber, dass die von mir verwendeten integers zu groß sind (etwa 10^10).
Meine Frage ist nun, inwieweit meine Vermutung zutreffen und wie ich das Problem ggf. lösen könnte. Mein Python-Buch weiß darüber nichts zu berichten, außer dass ab etwa 2*10^9 automatisch auf Long-integer geschaltet wird. Doch wie groß dürfen Long-integers werden?
Danke und Grüße, Tyrax
Sind meine Zahlen zu groß?
Beliebig groß - bis der Rechner schlapp macht.Tyrax hat geschrieben:Meine Frage ist nun, inwieweit meine Vermutung zutreffen und wie ich das Problem ggf. lösen könnte. Mein Python-Buch weiß darüber nichts zu berichten, außer dass ab etwa 2*10^9 automatisch auf Long-integer geschaltet wird. Doch wie groß dürfen Long-integers werden?
Code: Alles auswählen
>>> sys.maxint
2147483647
Code: Alles auswählen
>>> sys.maxsize
2147483647
the more they change the more they stay the same
10-hoch-10 (also 10000000000L) kann problemlos dargestellt werden. Der Wert von "sys.maxint" spielt hierbei keine Rolle, denn es ist, wie numerix schon sagte: Die Zahlen können so groß sein, wie sie in den Hauptspeicher passen.
Stefan
Code: Alles auswählen
10**10000+1
dann probier doch mal
Code: Alles auswählen
sys.maxint + 1
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
-
- User
- Beiträge: 128
- Registriert: Freitag 22. Oktober 2004, 09:22
- Wohnort: Salzgitter
- Kontaktdaten:
Code: Alles auswählen
>>> sys.maxint + 1
2147483648L
I am not part of the allesburner. I am the [url=http://allesburner.de]allesburner[/url].
Vielleicht meinte jbs das hier:
Aber was er uns damit sagen will, ist mir schleierhaft.
Code: Alles auswählen
>>> type(sys.maxint), type(sys.maxint+1)
(<type 'int'>, <type 'long'>)
Es lässt sich so ganz gut beschreiben
sma hat geschrieben:10-hoch-10 (also 10000000000L) kann problemlos dargestellt werden. Der Wert von "sys.maxint" spielt hierbei keine Rolle, denn es ist, wie numerix schon sagte: Die Zahlen können so groß sein, wie sie in den Hauptspeicher passen.StefanCode: Alles auswählen
10**10000+1
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
U. U. hilft ein bißchen Code - vielleicht können wir helfen? (Falls Du Dich dazu entschließt: Eine gute Problembeschreibung nicht vergessen.)