Geb mal anstatt +100 +100.00 ein.
Ein Ergebnis in firebird ist abhängig von den Nachkommastellen in der Berechnung.
Hat keine Auswirkungen. Ergebnis ist unverändert falsch.
Jedenfalls hat es damit zu tun. siehe:
Code:
select
1/3 as test1,
1/3.00 as test2,
1.00/3.00 as test3
from
rdb$database
ergibt 0 0.33 0.3333
Am besten funktioniert noch alle Zahlen in float zu casten und dann zurück in numeric.
Da mir das cast(...) dafür immer zu lang war, habe ich mir mal UDF-Functions gecshrieben, die nichts anderes taten, als diesen cast durchzuführen, aber besser lesbar und kürzer schreibbar waren.