Warum ist 3*0.1 = 0.30000000000000004???
Verfasst: Dienstag 12. November 2019, 15:52
Hallo zusammen,
ich wollte mir für ein DeepLearning Projekt mit (Python 64, 3.7.3) einige Testdaten generieren in etwa so:
Die Daten sollen dann weiterverarbeitet werden. Leider ergab ein erster Test nicht die erwartete Zahlenfolge:
usw. sondern:
Die zufälligen(?) Zahlen mit vielen Nachkommastellen sind für meine Zwecke gänzlich ungeeignet. (Ja ich weis ich kann runden, nein ich habe dazu keine Lust). Könnte mir jemand erklären wie es dazu kommt? Und wie ich das verhindern kann?
Grüße
ich wollte mir für ein DeepLearning Projekt mit (Python 64, 3.7.3) einige Testdaten generieren in etwa so:
Code: Alles auswählen
i = 0
for i in range(10):
tmp = i *0.1
print ("tmp: ", tmp)
i += 1
Code: Alles auswählen
tmp: 0.0
tmp: 0.1
tmp: 0.2
tmp: 0.3
Code: Alles auswählen
tmp: 0.0
tmp: 0.1
tmp: 0.2
tmp: 0.30000000000000004
tmp: 0.4
tmp: 0.5
tmp: 0.6000000000000001
tmp: 0.7000000000000001
tmp: 0.8
tmp: 0.9
Grüße