Seite 1 von 1

18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 10:24
von pommesMajo
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

Re: 18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 11:20
von Sirius3
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.

Re: 18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 12:52
von __blackjack__
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.

Re: 18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 12:53
von pommesMajo
:lol: ganz am Anfang
Danke!!!

Re: 18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 15:44
von /me
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.

Re: 18446744073709551615 / 3

Verfasst: Dienstag 26. April 2022, 16:00
von sparrow
Uuund: es hat nichts mit deinem Speicher zu tun.