Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Interbase: Dezimalzahlen berechnen (https://www.delphipraxis.net/87309-interbase-dezimalzahlen-berechnen.html)

Werwurm 26. Feb 2007 20:08

Datenbank: Interbase • Version: 6.5 • Zugriff über: IBConsole

Interbase: Dezimalzahlen berechnen
 
Hallo,

ich sitze nun seit zwei Tagen welches mir extreme Kopfschmerzen bereitet.
Ich schreibe mir gerade eine Stored Procedure für meine DB.
Im Rahmen dieser SP möchte ich einen Prozentwert errechnen.

SQL-Code:
  SCHNITT = (:TREFFER / :VERSUCHE)*100;
Die Varibale SCHNITT ist als Numeric(8,2) declariert, die anderen beiden sind Integer Variablen.

Wenn ich diese Zeile in meiner SP laufen lasse enthält SCHNITT immer nur immer abgrundende Ganzzahl.
Wie schaffe ich nun das ich das Ergebnis mit zwei Nachkommastellen sehe?
Ich habe hier schon mit CAST experemtiert, jedoch ohne Erfolg.
SQL-Code:
SCHNITT = CAST(((:TREFFER / :VERSUCHE)*100) AS NUMERIC(8,2))
Hat von Euch jemand eine Idee was ich falsch mache?

mkinzler 26. Feb 2007 20:13

Re: Interbase: Dezimalzahlen berechnen
 
Caste mal die Integer-Variablen zu Numeric
SQL-Code:
SCHNITT = (cast( :TREFFER as Numeric(10,4))/ cast(:VERSUCHE) as Numeric(10,4)*100;

hoika 27. Feb 2007 07:22

Re: Interbase: Dezimalzahlen berechnen
 
Hallo,

falls das nicht hilft,
ändere direkt den Datentyp (in DoublePrecision),
bis 8,2 wird decimal intern als Integer gespeichert.


Heiko

Werwurm 27. Feb 2007 08:01

Re: Interbase: Dezimalzahlen berechnen
 
Vielen Dank für die schnellen Antworten. :thumb:

Der Tip von mkinzler hat funktioniert.
Manchmal sieht man echt den Wald vor lauter Bäumen nicht. Hatte immer nur versucht das Ergebnis anzupassen.

Also nochmal Danke :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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