Einzelnen Beitrag anzeigen

Erutan

Registriert seit: 16. Mär 2013
71 Beiträge
 
Delphi 7 Professional
 
#1

Gleitkommazahlen mit Punkt statt Komma

  Alt 19. Aug 2013, 00:36
Delphi-Version: 5
Hallo,

ich würde gerne einen Wert aus einem Delphiprogramm mittels IdHTTP an meinen Internetserver senden lassen wo es von einem php-script in eine MySQL-Datenbank geschrieben wird.

Es handelt sich bei diesem Wert nur um eine Gleitkommazahl (Float) mit zwei Nachkommastellen, in der Form: 0,92.

Ein weiteres php-script liest diese Zahl, zusammen mit einigen weiteren hundert Zahlen in eine Tabelle ein und soll damit rechnen. Es soll ein Durschschnitt berechnet werden indem alle Zahlen aufadiert und dann durch die Anzahl der Zahlen geteilt werden. Daher kann ich (denke ich) die Werte auch nicht als String übertragen oder in der Datenbank speichern.

Nun erwartet die MySQL Datenbank allerdings ein anderes Format als Delphi ausspuckt. Lasse ich mir nämlich den ermittelten Wert, der übertragen werden soll, als Label anzeigen, so stet da ein Wert mit einem Komma. MySQL will bei Float aber einen Wert mit einem Punkt statt des Kommas.

Die Berechnung findet hier statt:

Delphi-Quellcode:
ergebnis := werter / sec ;
ergebnis := ergebnis*100;
ergebnis := round(ergebnis);
ergebnis := ergebnis/100;
Label4.Caption := 'Auswertung: ' + FloatToStr(ergebnis);
(Die Multiplikation mit 100, das kaufmännische Runden und die Division durch 100 findet statt um das Ergebnis auf zwei Nachkommastellen zu beschränken.)

Die Variable "werter" ermittelt wie oft ein bestimmtes Ereignis eintritt. Sie wird durch die vertrichene Zeit (sec) geteilt.
Das Ergebnis (ergebns) soll dann in die MySQL-Datenbank geschrieben werden damit ein php-script mit diesen Werten in Echtzeit statistische Berechnungen anstellen kann.

Nur nimmt MySQL keine Floatzahlen mit Komma statt Punkt an. Der Wert bleibt dann einfach 0.
Holger
  Mit Zitat antworten Zitat