diff --git a/be/src/vec/functions/cast/cast_to_basic_number_common.h b/be/src/vec/functions/cast/cast_to_basic_number_common.h index ecbb3c05d75406..001aa905b2d9fd 100644 --- a/be/src/vec/functions/cast/cast_to_basic_number_common.h +++ b/be/src/vec/functions/cast/cast_to_basic_number_common.h @@ -328,13 +328,8 @@ struct CastToFloat { static inline bool _from_decimalv3(const FromCppT& from, UInt32 from_scale, ToCppT& to, const typename FromCppT::NativeType& scale_multiplier, CastParameters& params) { - if constexpr (IsDecimal256) { - to = static_cast(static_cast(from.value) / - static_cast(scale_multiplier)); - } else { - to = static_cast(static_cast(from.value) / - static_cast(scale_multiplier)); - } + to = static_cast(static_cast(from.value) / + static_cast(scale_multiplier)); return true; } // cast from date and datetime to float/double, will not overflow diff --git a/be/test/vec/function/cast/cast_to_float_double.cpp b/be/test/vec/function/cast/cast_to_float_double.cpp index 7760a0ac5c8b8c..e719f2cf0f0491 100644 --- a/be/test/vec/function/cast/cast_to_float_double.cpp +++ b/be/test/vec/function/cast/cast_to_float_double.cpp @@ -892,14 +892,8 @@ struct FunctionCastToFloatTest : public FunctionCastTest { auto decimal_num = decimal_ctor(i, 0, FromScale); auto num_str = dt_from.to_string(decimal_num); // auto float_v = static_cast(i); - FloatType float_v; - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + FloatType float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); if (std::isinf(float_v)) { // std::cout << fmt::format("cast {}({}, {}) value {} to float_v result is inf\n", // type_to_string(FromT::PType), FromPrecision, FromScale, @@ -912,13 +906,8 @@ struct FunctionCastToFloatTest : public FunctionCastTest { decimal_num = decimal_ctor(-i, 0, FromScale); num_str = dt_from.to_string(decimal_num); - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); if (std::isinf(float_v)) { // std::cout << fmt::format("cast {}({}, {}) value {} to float_v result is inf\n", // type_to_string(FromT::PType), FromPrecision, FromScale, @@ -940,27 +929,16 @@ struct FunctionCastToFloatTest : public FunctionCastTest { for (const auto& f : fractional_part) { auto decimal_num = decimal_ctor(0, f, FromScale); auto num_str = dt_from.to_string(decimal_num); - FloatType float_v; - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + FloatType float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); // dbg_str += fmt::format("({}, {})|", dt.to_string(decimal_num), float_v); data_set.push_back({{decimal_num}, float_v}); test_data_set.emplace_back(num_str, float_v); decimal_num = decimal_ctor(0, -f, FromScale); num_str = dt_from.to_string(decimal_num); - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); // dbg_str += fmt::format("({}, {})|", dt.to_string(decimal_num), float_v); data_set.push_back({{decimal_num}, float_v}); test_data_set.emplace_back(num_str, float_v); @@ -977,14 +955,8 @@ struct FunctionCastToFloatTest : public FunctionCastTest { for (const auto& f : fractional_part) { auto decimal_num = decimal_ctor(i, f, FromScale); auto num_str = dt_from.to_string(decimal_num); - FloatType float_v; - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + FloatType float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); if (std::isinf(float_v)) { // std::cout << fmt::format("cast {}({}, {}) value {} to float_v result is inf\n", // type_to_string(FromT::PType), FromPrecision, FromScale, @@ -997,13 +969,8 @@ struct FunctionCastToFloatTest : public FunctionCastTest { decimal_num = decimal_ctor(-i, -f, FromScale); num_str = dt_from.to_string(decimal_num); - if constexpr (IsDecimal256) { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } else { - float_v = static_cast(decimal_num.value) / - static_cast(scale_multiplier); - } + float_v = static_cast(decimal_num.value) / + static_cast(scale_multiplier); if (std::isinf(float_v)) { // std::cout << fmt::format("cast {}({}, {}) value {} to float_v result is inf\n", // type_to_string(FromT::PType), FromPrecision, FromScale,