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.
Hansi1350
User
Beiträge: 6 Registriert: Freitag 27. September 2024, 11:48
Freitag 27. September 2024, 16:52
Ich habe schon viel auch in anderen Programmiersprachen mit floats programmiert, aber hier steh ich wohl völlig auf dem Schlauch?
Code:
Code: Alles auswählen
def gatePlausibleCheck(gateA, gateB, pos, scale):
borderRight = pos + float(scale) * 10 / 2
borderLeft = pos - float(scale) * 10 / 2
print("gateA: {0:.9f} borderLeft: {0:.9f}".format(gateA, borderLeft))
print("{}".format(abs(gateA - borderLeft) < 1.0E-06))
print("{}".format(abs(gateA - borderLeft)))
print("{}".format(gateA - borderLeft))
print("{}".format(1.0E-06))
Ausgabe:
Code: Alles auswählen
gateA: -0.004450000 borderLeft: -0.004450000
False
4.999999999999796e-06
-4.999999999999796e-06
1e-06
Da muss doch 0, oder nahe 0 rauskommen.
Hansi1350
User
Beiträge: 6 Registriert: Freitag 27. September 2024, 11:48
Freitag 27. September 2024, 17:49
Wow, bin ich da über etwas gestolpert:
Code:
Code: Alles auswählen
def gatePlausibleCheck(gateA, gateB, pos, scale):
borderRight = pos + float(scale) * 10 / 2
borderLeft = pos - float(scale) * 10 / 2
print("gateA: {0:.9f} borderLeft: {0:.9f}".format(gateA, borderLeft))
print("{0:.9f}".format(gateA))
print("{0:.9f}".format(borderLeft))
Ausgabe:
Code: Alles auswählen
gateA: -0.004450000 borderLeft: -0.004450000
-0.004450000
-0.004445000
Ist das ein bug? Ich sehe hier keinen Fehler meinerseits.
Dennis89
User
Beiträge: 1552 Registriert: Freitag 11. Dezember 2020, 15:13
Freitag 27. September 2024, 18:27
Hallo,
4.9e-06 (=0.0000049) ist doch Nahe 0. Schau dir doch mal die zwei Zahlen die du verrechnest vollständig an und nicht auf ein paar Stellen reduziert.
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
sparrow
User
Beiträge: 4538 Registriert: Freitag 17. April 2009, 10:28
Freitag 27. September 2024, 18:44
@Hansi1350: Und du solltest ein Beispiel zeigen, in dem die Werte klar sind. Dann kann man die bei dem Verständnis helfen.
__blackjack__
User
Beiträge: 14047 Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:
Freitag 27. September 2024, 18:47
@Hansi1350: Was ist denn `scale` für ein Datentyp? Ist der `float()`-Aufruf da wirklich nötig?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
DeaD_EyE
User
Beiträge: 1239 Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:
Freitag 27. September 2024, 20:20
Du bist wahrscheinlich über eine Wissenslücke gestolpert:
https://0.30000000000000004.com/
Außerdem verschweigst du gateA, gateB und scale. Was sind die Eingangswerte?
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Hansi1350
User
Beiträge: 6 Registriert: Freitag 27. September 2024, 11:48
Freitag 27. September 2024, 22:21
Schaut mal in meinem 2. Post, da sieht man, wenn man genauer hinschaut (vorsicht mit den nullen), das die selbe variable, mit derselben formatierung, unterschiedliche werte ausgibt.
Hansi1350
User
Beiträge: 6 Registriert: Freitag 27. September 2024, 11:48
Freitag 27. September 2024, 22:22
__blackjack__ hat geschrieben: Freitag 27. September 2024, 18:47
@Hansi1350: Was ist denn `scale` für ein Datentyp? Ist der `float()`-Aufruf da wirklich nötig?
Nein, ich habe nur in meiner Ratlosigkeit irgendwas probiert.
juwido
User
Beiträge: 24 Registriert: Donnerstag 15. Dezember 2022, 13:41
Freitag 27. September 2024, 22:50
Hier wird der Wert "gateA" doppelt angezeigt.
Code: Alles auswählen
print("gateA: {0:.9f} borderLeft: {0:.9f}".format(gateA, borderLeft))
X
print("gateA: {0:.9f} borderLeft: {1:.9f}".format(gateA, borderLeft))
__blackjack__
User
Beiträge: 14047 Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:
Samstag 28. September 2024, 06:12
Hier das Problem noch mal eingedampft und mit Zeichenketten, denn das hat mit dem Datentyp überhaupt nichts zu tun:
Code: Alles auswählen
In [18]: "{0} {0}".format("spam", "parrot")
Out[18]: 'spam spam'
“Vir, intelligence has nothing to do with politics!” — Londo Mollari