![]() |
Datenbank: FB • Version: 1.5 • Zugriff über: egal
Rechnen mit double precision
Hallo #,
ich habe Records mit 2 double precision Feldern (Field_Min, Field_Sub). Pro Eintrag (WorkStep) gibt es mehrere dieser Records Etwa so WorkStepId Min Sub 2 3.5 1.0 2 4.0 0.0 3 2.0 0.0 Die Werte enthalten maximal 2 Nachkommstellen. Ich brauche die Summe aus Min-Sub von Workstep 2. Man könnte das jetzt als Select Sum(Min-Sub) From WorkStepTable Where WorkStepId=2 machen, geht auch, aber DoublePrecision ist Fliesskomma (Rundungsfehler usw.) Unter Delphi würde ich ja Int (Int(Min*100)) - Int(Sub*100)) / 100 über auf Integer-Werte gehen können Geht das auch unter Firebird (udf oder so ?) Danke Heiko |
Re: Rechnen mit double precision
Du könntest auch einen Cast nach Numeric versuchen.
|
Re: Rechnen mit double precision
Hallo,
Numeric ist aber auch fliesskomma .. (zumindestens > 10,2) Aber ein Cast auf Integer müsste ja vielleicht gehen ... Hat denn FreeUDF dafür nix ??? Heiko |
Re: Rechnen mit double precision
mach doch einen expliziten Cast
|
Re: Rechnen mit double precision
Hallo,
OK, erledigt, mit dem Cast zu Integer buw numeric(x mit x > irgendwas scheint das zu klappen. Muss nur mal ein paar "böse Daten" für Tests anlegen. Heiko |
Re: Rechnen mit double precision
Wenn du wirklich nur 2 Nachkommastellen berücksichtigen willst, kannst du auch
SQL-Code:
zum Ziel kommen.
select cast (sum(min-sub)*100 as int) from tabelle where workstep = 4711
|
Re: Rechnen mit double precision
Hallo,
dabei kann es aber zu Rundungsfehlern beim sub führen, deshalb multipliziere ich beide Werte vorher mit 100. Der cast auf Integer ist ja dann sowas wie ein Trunc *hoff* Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 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-2025 by Thomas Breitkreuz