18446744073709551615 / 3

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pommesMajo
User
Beiträge: 2
Registriert: Dienstag 19. April 2022, 09:16

Hallo Forum,
ich stehe ganz am Anfang, lerne gerade die Basics von Python.
Warum gibt mir 18446744073709551615 / 3 einen falschen Wert aus, wo doch die einzige Grenze mein (RAM - Win) sei?

Der Win-Taschenrechner gibt 6.148.914.691.236.517.205, Python jedoch 6148914691236516864.
long() gibt es nicht mehr.

Danke schon Mal
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Das nennt sich Rechenungenauigkeit. Die Grenze bei Fließkommazahlen sind ungefähr 15 Dezimalstellen, Deine Zahl hat aber 20. Also werden die letzten 5 Ziffern nicht exakt gespeichert.
Was Du meinst ist Ganzzahlberechnung:

Code: Alles auswählen

18446744073709551615 // 3
Dort hat mal beliebig viele Stellen, aber halt keine hinter dem Komma.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Also bei mir wird das Ergebnis als 6.148914691236517e+18 dargestellt, es wäre also auch interessant bei so etwas zu zeigen was genau gemacht wurde.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
pommesMajo
User
Beiträge: 2
Registriert: Dienstag 19. April 2022, 09:16

:lol: ganz am Anfang
Danke!!!
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Wichtig: Die Sache mit den ungenauen Fließkommaberechnungen ist kein Python-"Problem". Das ist in jeder Programmiersprache so, die den IEEE 754 Standard verwendet und damit so ziemlich jede.
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Uuund: es hat nichts mit deinem Speicher zu tun.
Antworten