AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Woher kommen diese Nachkommastellen?
Thema durchsuchen
Ansicht
Themen-Optionen

Woher kommen diese Nachkommastellen?

Ein Thema von sunnyandy · begonnen am 3. Mär 2006 · letzter Beitrag vom 3. Mär 2006
Antwort Antwort
sunnyandy

Registriert seit: 24. Feb 2006
49 Beiträge
 
#1

Woher kommen diese Nachkommastellen?

  Alt 3. Mär 2006, 00:08
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
Hallo,
erstelle die Datenbank folgerndermaßen:
Delphi-Quellcode:
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;';
Und beim Öffnen mach ich es so:
Delphi-Quellcode:
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;
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?
Wenn ich das Datenfeld so auslese
litem.SubItems.Add(FieldbyName('preis').AsString); konvertiert er es doch gleich in deinen String oder? Was mache ich falsch?
Danke schonmal !!
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Woher kommen diese Nachkommastellen?

  Alt 3. Mär 2006, 00:16
Und wieder einmal das ich weiss nicht wie oft schon verlinkte Posting
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
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
sunnyandy

Registriert seit: 24. Feb 2006
49 Beiträge
 
#3

Re: Woher kommen diese Nachkommastellen?

  Alt 3. Mär 2006, 00:23
Hmm ja habe mir das Posting durchgelesen
Dann werde ich es einfach als Sting speichern, danke !!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Woher kommen diese Nachkommastellen?

  Alt 3. Mär 2006, 07:32
Zitat von sunnyandy:
... Dann werde ich es einfach als Sting speichern, danke !!
Autsch.
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Woher kommen diese Nachkommastellen?

  Alt 3. Mär 2006, 10:21
Hallo,

ich erstelle mir für Währungen einfach so ein Feld:
`preis` decimal(10,2) NOT NULL default '0.00' Damit hab ich eine Festkommazahl mit genau dem gewünschten Wertebereich.

Gruß
xaromz
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz