Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Embedded Firebird und Floats?
Quest
myCSharp.de - Member



Dabei seit:
Beiträge: 108

Themenstarter:

Embedded Firebird und Floats?

beantworten | zitieren | melden

Hallo zusammen,

ich benutze die firebird-DB in der embedded-version und speichere derzeit in einigen datenbanktabellen float-werte (single in C#)...

speichere ich nun z.B. "2.5" ab und öffne die datenbank mit einem der gängigen tools (ib-expert, ems db manager, etc.) so steht dann im data-view immer sowas wie "2.4999999545434"...

wie kann sowas kommen? von irgendwelchen DB-einstellungen?
oder behandelt firebird die floats irgendwie anders?

danke schonmal...
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8.746
Herkunft: Berlin

beantworten | zitieren | melden

Bei Fliesskommazahlen musst du grundsätzlich und immer mit sowas rechnen.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
versuch mal die 2.5 vor dem speichern explizit auf float zu casten, sonst steckst Du vermutlich 'nen Double in ein Float-Feld.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Quest
myCSharp.de - Member



Dabei seit:
Beiträge: 108

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von MarsStein
Hallo,
versuch mal die 2.5 vor dem speichern explizit auf float zu casten, sonst steckst Du vermutlich 'nen Double in ein Float-Feld.

mach ich schon, hab ein explizites "Convert.ToSingle" bevor ich die zahl in das dataset stecke...
private Nachricht | Beiträge des Benutzers
Quest
myCSharp.de - Member



Dabei seit:
Beiträge: 108

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von svenson
Bei Fliesskommazahlen musst du grundsätzlich und immer mit sowas rechnen.

muss ich? ich kann also nicht davon ausgehen dass ich 2.5 speichere und dann auch 2.5 rausbekomme? also dann jedesmal beim einlesen wieder casten? 8o 8o 8o
private Nachricht | Beiträge des Benutzers
Morpheus
myCSharp.de - Member



Dabei seit:
Beiträge: 104
Herkunft: München

beantworten | zitieren | melden

Zitat
Original von Quest
ich kann also nicht davon ausgehen dass ich 2.5 speichere und dann auch 2.5 rausbekomme?

Hallo Quest;

bei der Float-Genauigkeit (7 Stellen im Wertebereich ±1.5 × 10^45 bis ±3,4 × 10^38 ) kannst Du sicherlich nicht davon ausgehen. Wenn Du nur eine wesentlich geringere Genauigkeit benötigst und sicher sein willst, dass 2.5 == 2.5, verwende einen anderen Typen.

Gruß
Morpheus
private Nachricht | Beiträge des Benutzers