| Firebird Documentation Index → Firebird 1.5 Language Ref. Update → External functions (UDFs) → truncate, i64truncate |
![]() |
Library: fbudf
Added in: 1.0 (Win), 1.5 (Linux)
Changed in: 1.5, 1.5.6
Description: These functions return the whole-number portion of their (scaled numeric/decimal) argument. They do not work with floats or doubles.
Return type: INTEGER / NUMERIC(18)
Syntax:
truncate (number) i64truncate (bignumber)
Both functions round to the nearest whole number that is lower than or equal to the
argument. This means that negative numbers are also “truncated” downward. For
instance, truncate( returns
-2.37)-3.
Contrary to what's mentioned above, in versions 1.0 through 1.5.5 anything between -1 and 0 is truncated to 0. This anomaly has been corrected in Firebird 1.5.6 and above (as a backport from 2.5).
Declarations:
In Firebird 1.0.x, the entry point for both functions is
truncate:DECLARE EXTERNAL FUNCTION Truncate INT BY DESCRIPTOR, INT BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'truncate' MODULE_NAME 'fbudf'DECLARE EXTERNAL FUNCTION i64Truncate NUMERIC(18) BY DESCRIPTOR, NUMERIC(18) BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'truncate' MODULE_NAME 'fbudf'In Firebird 1.5, the entry point has been renamed to
fbtruncate:DECLARE EXTERNAL FUNCTION Truncate INT BY DESCRIPTOR, INT BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'DECLARE EXTERNAL FUNCTION i64Truncate NUMERIC(18) BY DESCRIPTOR, NUMERIC(18) BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'If you move an existing database from Firebird 1.0.x to 1.5 or higher, drop any existing
*roundand*truncatedeclarations and declare them anew, using the updated entry point names.
| Firebird Documentation Index → Firebird 1.5 Language Ref. Update → External functions (UDFs) → truncate, i64truncate |