Vielleicht hilft es dir aber, einfach mal auch in Firebird den Typ "DOUBLE PRECISION" zu nehmen, dessen Verhalten ziemlich identisch zum Double in Delphi ist.
Um den dann mit definierter Anzahl Nachkommastellen darzustellen, kannst du dir ja bei Firebird 3 eine eigene Stored function bauen, die deine Währungseinstellung berücksichtigt oder konstant einfach mit ROUND() oder cast arbeiten
Hat Double Precicion nicht das gleiche Problem wie die anderen "natürlichen" floats, dass 0 nicht gleich 0 ist ?
Eins der probleme, welche ch immer wieder habe ist das physikalisch meine Inventarmenge 0 ist, aber beim Berechnen in firebird sowas wie 0.00000046784345 rauskommt, und das dann ich Berechnungen zu riesig grossen zahlen führt, die einen überlauf produzieren..