![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
Woher kommen diese Nachkommastellen?
Hallo,
erstelle die Datenbank folgerndermaßen:
Delphi-Quellcode:
Und beim Öffnen mach ich es so:
SQL.Text := 'CREATE TABLE IF NOT EXISTS `' +tbl_weinliste+'` ('+
'`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,' + '`artnr` TEXT NOT NULL,' + '`preis` FLOAT NOT NULL,' + '`bezeichnung` TEXT NOT NULL,' + '`bestand` INT NOT NULL)CHARACTER SET latin1 COLLATE latin1_german2_ci;';
Delphi-Quellcode:
Mein Problem ist jetzt, dass ich beispielsweise einen Preis von "3.99" eingebe und phpmyadmin zeigt ihn auch so richtig an. Beim Öffnen aber steht bei mir im Programm "3.990000005674", wieso das?
Sql.Text := 'SELECT * FROM `'+tbl_weinliste+'`';
Open; while not Eof do begin litem := frmmain.lvweine.Items.Add; litem.Data := Pointer(FieldbyName('id').AsInteger); litem.Caption := FieldbyName('artnr').AsString; litem.SubItems.Add(FieldbyName('bezeichnung').AsString); litem.SubItems.Add(FieldbyName('preis').AsString); litem.SubItems.Add(FieldbyName('bestand').AsString); Next; Wenn ich das Datenfeld so auslese
Delphi-Quellcode:
konvertiert er es doch gleich in deinen String oder? Was mache ich falsch?
litem.SubItems.Add(FieldbyName('preis').AsString);
Danke schonmal !! |
Re: Woher kommen diese Nachkommastellen?
Und wieder einmal das ich weiss nicht wie oft schon verlinkte
![]() Und dein Feld "Preis" hast du als Float definiert. Sinnvoll wäre dort ein Ganzzahlentyp, bei dem du die letzen n Stellen als Nachkommaanteil interpretierst (Festkommazahlen). Das hat den Vorteil gegenüber Strings in der DB, dass du damit weiterhin ganz normal rechnen kannst. Du musst immer nur den Faktor im Hinterkopf haben. Gruss, Fabian |
Re: Woher kommen diese Nachkommastellen?
Hmm ja habe mir das Posting durchgelesen :)
Dann werde ich es einfach als Sting speichern, danke !! |
Re: Woher kommen diese Nachkommastellen?
Zitat:
Nicht als String speichern sondern so wie von dizzy gesagt als Ganzzahl (integer). Du musst nur im Kopf behalten das Du den Preis nicht in Euro sondern in Cent abspeicherst. |
Re: Woher kommen diese Nachkommastellen?
Hallo,
ich erstelle mir für Währungen einfach so ein Feld:
SQL-Code:
Damit hab ich eine Festkommazahl mit genau dem gewünschten Wertebereich.
`preis` decimal(10,2) NOT NULL default '0.00'
Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz