Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Round gibt unterschiedliche Nachkommastellen zurück (https://www.delphipraxis.net/171691-round-gibt-unterschiedliche-nachkommastellen-zurueck.html)

messie 20. Nov 2012 09:45

Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC/Flamerobin

Round gibt unterschiedliche Nachkommastellen zurück
 
Moin,

ich habe einen View, in dem ich mit Round die Nachkommastellen für die Darstellung optimieren möchte.
Aber mir gibt z.B.
Code:
select Round(TABLE.OUTPUT,2) FROM TABLE
statt der erwarteten 0.30 im Flamerobin 0.300000 zurück. Im Programm stehen dann sogar 15 Nachkommastellen.

Beide rufe ich mit
Code:
select * from VIEW
auf.

Kann mir jemand erklären, wie das zusammen hängt?

Grüße, Messie

Morphie 20. Nov 2012 09:53

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Ist laut Doku doch genau so gewollt:
http://www.firebirdsql.org/refdocs/l...unc-round.html

Zitat:

ROUND(123.654, 1) returns 123.700 (not 123.7)
ROUND(8341.7, -3) returns 8000.0 (not 8000)
ROUND(45.1212, 0) returns 45.0000 (not 45)
Edit: du könntest uns noch verraten, was TABLE.OUTPUT für einen Wert hat

Neutral General 20. Nov 2012 10:08

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Ist es nicht total egal wie viele Nachkommastellen du hast wenn eh alle weiteren Stellen Nullen sind? 0,3 und 0,300000000000 sind der gleiche Wert. Und darstellen kannst du den Wert nachher ja wie du willst.

messie 20. Nov 2012 10:23

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Zitat:

Zitat von Neutral General (Beitrag 1192002)
Ist es nicht total egal wie viele Nachkommastellen du hast wenn eh alle weiteren Stellen Nullen sind? 0,3 und 0,300000000000 sind der gleiche Wert. Und darstellen kannst du den Wert nachher ja wie du willst.

Ja, aber ich bekomme 0,300000011920929 :pale:

Für die Darstellung: gibt es so etwas wie ein FormatFloat?

Grüße, Messie

p80286 20. Nov 2012 10:25

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Zitat:

Zitat von messie (Beitrag 1191998)
statt der erwarteten 0.30 im Flamerobin 0.300000 zurück. Im Programm stehen dann sogar 15 Nachkommastellen.

?Ja und?

Interessant wird das doch erst, wenn Du diesen Wert darstellen willst, und da gibt es Format.

Zitat:

Zitat von messie (Beitrag 1191998)
Ja, aber ich bekomme 0,300000011920929

Und dann nochmal gefragt, was ist der Ausgangswert?


Gruß
K-H

messie 20. Nov 2012 10:30

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Zitat:

Zitat von p80286 (Beitrag 1192006)
Interessant wird das doch erst, wenn Du diesen Wert darstellen willst, und da gibt es Format.

Ich habe gelesen, dass es das nicht mehr gibt. Wo müsste ich denn suchen?

Ausgangswert ist 0.3 gewesen (gelesen als String '0.3' aus einer Datei).

Grüße, Messie

p80286 20. Nov 2012 10:49

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Zitat:

Zitat von messie (Beitrag 1192008)
Zitat:

Zitat von p80286 (Beitrag 1192006)
Interessant wird das doch erst, wenn Du diesen Wert darstellen willst, und da gibt es Format.

Ich habe gelesen, dass es das nicht mehr gibt. Wo müsste ich denn suchen?

Äh in Delphi?

Zitat:

Zitat von messie (Beitrag 1192008)

Ausgangswert ist 0.3 gewesen (gelesen als String '0.3' aus einer Datei).

die Frage ist, was ist der Inhalt von Table.Output und was ist der Typ?

Gruß
K-H

user0815 20. Nov 2012 10:57

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Delphi-Quellcode:
procedure TDatenmodul.QueryAfterOpen(DataSet: TDataSet);
begin
  (DataSet.FieldByName('FELD') as TFloatField).DisplayFormat := '0.00';
end;

messie 20. Nov 2012 10:59

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Table.Output ist ein Float.

Ich habe (in anderen Programmen) öfter mit Iterationen zu tun und da bin ich schon häufiger über das Nachkommastellengeraffel gestolpert. Deshalb würde ich es gerne exakt gerundet in die DB einlesen.

Im Moment ist die Datenmenge direkt an ein TCRDBGrid angebunden, da ist kein Delphi zwischen. Ob es in dem Grid selbst Formatstrings gibt? Oder ist die 0815-Lösung (:-D) die einzige?

Grüße, Messie

p80286 20. Nov 2012 11:16

AW: Round gibt unterschiedliche Nachkommastellen zurück
 
Schade da kann ich Dir nicht weiter helfen, aber angeblich wird der Source Code mitgeliefert, vielleicht wirst Du da fündig.

Gruß
k-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.
Seite 1 von 3  1 23      

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