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.

Datenbank Numeric zu Double

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich hoffe irgendwer kann mir weiterhelfen.

in meinem Programm muss ich aus einer Datenbank einen Numerischen wert(Numeric(19,6) auslesen. Den Wert krieg ich ja über DataReader.GetDecimal.

Nun muss ich das ganze in ein Objekt Eigenschaft spielen das den Typ Double hat.

Das löse ich bisher mit Convert.ToDouble().

Nun ist mir aufgefallen das er mir immer wieder Rundungsfehler macht, obwohl in der Datenbank z.b. nur 18.31 steht und im Objekt ist dann z.B. 18.32.

kann das ganze am Convert liegen?

Gruß

Fließkommatypen sind durch ihren Aufbau prinzipbedingt ungenau.

Ein Wert wie 18.31 lässt sich als Fließkommawert nicht exakt darstellen, darum ist das Ergebnis der Umwandlung der double-Wert, der am nächsten an 18.31 liegt. In diesem Fall ist das 18.309999999999999. Wenn man in der weiteren Verarbeitung die hinteren Stellen einfach abschneidet, kann dabei dabei dann 18.30 herauskommen. Ein höherer Wert sollte eigentlich nicht auftreten.

Diese Rundungsfehler sind bei Fließkommatypen unvermeidbar, das musst du berücksichtigen, bevor du den Wert weiter verarbeitest.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.