Fix [WhiteScan] [FLOATING_POINT_EQUALITY] (#635)
This commit is contained in:
@ -74,7 +74,7 @@ int ObExprSqrt::calc_result1(ObObj& result, const ObObj& obj, ObExprCtx& expr_ct
|
|||||||
double value = obj.get_double();
|
double value = obj.get_double();
|
||||||
if (value < 0) {
|
if (value < 0) {
|
||||||
ret = OB_ERR_ARGUMENT_OUT_OF_RANGE;
|
ret = OB_ERR_ARGUMENT_OUT_OF_RANGE;
|
||||||
} else if (value == -0) {
|
} else if (std::fpclassify(value) == FP_ZERO) {
|
||||||
result.set_double(-0);
|
result.set_double(-0);
|
||||||
} else {
|
} else {
|
||||||
result.set_double(sqrt(value));
|
result.set_double(sqrt(value));
|
||||||
@ -83,7 +83,7 @@ int ObExprSqrt::calc_result1(ObObj& result, const ObObj& obj, ObExprCtx& expr_ct
|
|||||||
float value = obj.get_float();
|
float value = obj.get_float();
|
||||||
if (value < 0) {
|
if (value < 0) {
|
||||||
ret = OB_ERR_ARGUMENT_OUT_OF_RANGE;
|
ret = OB_ERR_ARGUMENT_OUT_OF_RANGE;
|
||||||
} else if (value == -0) {
|
} else if (std::fpclassify(value) == FP_ZERO) {
|
||||||
result.set_float(-0);
|
result.set_float(-0);
|
||||||
} else {
|
} else {
|
||||||
result.set_float(sqrtf(value));
|
result.set_float(sqrtf(value));
|
||||||
|
|||||||
Reference in New Issue
Block a user