Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

  • Autor
Das ist ein normaler Rundungsfehler. Guck mal hier

also die Zahlen 10.000000000000000 und 13.690000000000000

sind CString die ich mit strtod in double umwandeln will/muss und zusamen adiren,leider kriege ich "normalen Rundungsfehler"

wie kann ich vorgehen, dass ich den "normalen Rundungsfehler"

umgehen bzw. beheben kann ???

  • Autor
Versuch mal mit long double zu rechnen, das ist AFAIK der genauste simple Datentyp. Wenn das nicht reicht musst entweder eine Bibliothek suchen die beliebig lange Flieskommazahlen handeln kann oder den Rundungsfehler in Kauf nehmen und dein Programm entsprechend anpassen.

Ja ich glaube das ich auch den Fehler im kauf nehmen muss, allerdings wie:

Ich habe:

Double gesamt = 23.690000000000000

Double gesamt1 = 23.689999999999998

Jetzt wenn ich die vergleichen will mit

If (gesasmt != gesamt1)

Rutsche ich in if Anweisung rein obwohl ich es nicht möchte

Wie kann ich es lösen ??

Wie kann ich es lösen ??
Haben wir doch schon gesagt: Indem du keine Fließkommatypen benutzt. Es gibt nicht umsonst die Regel, dass man float & double nicht auf Gleichheit (oder Ungleichheit) prüfen soll.

Ich frag ja gern nochmal: Geht es immer nur um zwei Nachkommastellen?

  • Autor
Geht es immer nur um zwei Nachkommastellen? Dann rechne gleich mit Hundertsteln und Ganzzahltypen, und benutz die Fließkommatypen nur für die Ausgabe, wenn überhaupt.

ja aber wie kann ich eine Zahl die ich im CString als 23,21 in zB. Long speichern

  • Autor
Indem du nicht 23,21 speicherst, sondern 2321. Du multiplizierst den double-Wert mit 100, addierst 0.5 (bzw. -0.5 bei negativen Zahlen), damit richtig gerundet wird, und weist das einer long-Variablen zu.

Ja das ist mir schon klar, aber ich speichere nichts, ich kriege den Betrag von Anwendung aus eben so

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.