```sql
SELECT
    floor(toDecimal64(1232.123132, 4) AS D64),
    ceiling(D64),
    round(D64),
    roundBankers(D64),
    floor(toDecimal128(1232.123132, 24) AS D128),
    ceiling(D128),
    round(D128),
    roundBankers(D128),
    floor(toDecimal256(1232.123132, 24) AS D256),
    ceiling(D256),
    round(D256),
    roundBankers(D256)
FORMAT Vertical

Query id: 04db8c13-4888-47b6-908b-ba1268138f26

Row 1:
──────
floor(toDecimal64(1232.123132, 4)):          1232
ceil(toDecimal64(1232.123132, 4)):           1233
round(toDecimal64(1232.123132, 4)):          1232
roundBankers(toDecimal64(1232.123132, 4)):   1232
floor(toDecimal128(1232.123132, 24)):        1232.12311679615299966394772
ceil(toDecimal128(1232.123132, 24)):         1232.123135242897073373499335
round(toDecimal128(1232.123132, 24)):        1232.123135242897073373499335
roundBankers(toDecimal128(1232.123132, 24)): 1232.123135242897073373499335
floor(toDecimal256(1232.123132, 24)):        1232.12311679615299966394772
ceil(toDecimal256(1232.123132, 24)):         1232.123135242897073373499335
round(toDecimal256(1232.123132, 24)):        1232.123135242897073373499335
roundBankers(toDecimal256(1232.123132, 24)): 1232.123135242897073373499335
```

#pragma once
#include <Functions/FunctionHelpers.h>
#include <IO/WriteHelpers.h>
#include <DataTypes/getLeastSupertype.h>
#include <DataTypes/DataTypeArray.h>
#include <DataTypes/DataTypesNumber.h>
#include <DataTypes/DataTypesDecimal.h>
#include <DataTypes/DataTypeDateTime64.h>
#include <Columns/ColumnVector.h>
#include <Interpreters/castColumn.h>
#include "IFunction.h"
#include <Common/intExp.h>
#include <Common/assert_cast.h>
#include <Core/Defines.h>
#include <cmath>
#include <type_traits>
#include <array>
#include <base/bit_cast.h>
#include <base/sort.h>
#include <algorithm>
#ifdef __SSE4_1__
    #include <smmintrin.h>
#else
    #include <fenv.h>
#endif