diff --git a/pkg/expression/builtin_math.go b/pkg/expression/builtin_math.go index 08d5e3b20f2d8..0e53a432f6c79 100644 --- a/pkg/expression/builtin_math.go +++ b/pkg/expression/builtin_math.go @@ -1941,7 +1941,7 @@ func (b *builtinRadiansSig) evalReal(ctx EvalContext, row chunk.Row) (float64, b if isNull || err != nil { return 0, isNull, err } - return x * math.Pi / 180, false, nil + return x * (math.Pi / 180), false, nil } type sinFunctionClass struct { diff --git a/pkg/expression/builtin_math_test.go b/pkg/expression/builtin_math_test.go index d18747cac8359..01d0d4a01a122 100644 --- a/pkg/expression/builtin_math_test.go +++ b/pkg/expression/builtin_math_test.go @@ -756,6 +756,8 @@ func TestRadians(t *testing.T) { {float64(180), float64(math.Pi)}, {-360, -2 * float64(math.Pi)}, {"180", float64(math.Pi)}, + {float64(1.0e308), float64(1.7453292519943295e306)}, + {float64(23), float64(0.4014257279586958)}, } Dtbl := tblToDtbl(tbl) diff --git a/pkg/expression/builtin_math_vec.go b/pkg/expression/builtin_math_vec.go index 755e0799e3eba..93aff90dc50b4 100644 --- a/pkg/expression/builtin_math_vec.go +++ b/pkg/expression/builtin_math_vec.go @@ -314,7 +314,7 @@ func (b *builtinRadiansSig) vecEvalReal(ctx EvalContext, input *chunk.Chunk, res if result.IsNull(i) { continue } - f64s[i] = f64s[i] * math.Pi / 180 + f64s[i] = f64s[i] * (math.Pi / 180) } return nil } diff --git a/tests/integrationtest/r/expression/builtin.result b/tests/integrationtest/r/expression/builtin.result index e5869d051cf08..d1e0adb5f4064 100644 --- a/tests/integrationtest/r/expression/builtin.result +++ b/tests/integrationtest/r/expression/builtin.result @@ -520,7 +520,7 @@ crc32(0) crc32(-0) crc32('0') crc32('abc') crc32('ABC') crc32(NULL) crc32('') cr 4108050209 4108050209 4108050209 891568578 2743272264 NULL 0 62177901 SELECT radians(1.0), radians(pi()), radians(pi()/2), radians(180), radians(1.009); radians(1.0) radians(pi()) radians(pi()/2) radians(180) radians(1.009) -0.017453292519943295 0.05483113556160754 0.02741556778080377 3.141592653589793 0.01761037215262278 +0.017453292519943295 0.05483113556160755 0.027415567780803774 3.141592653589793 0.01761037215262278 drop table if exists t; create table t(a int); insert into t values(1),(2),(3);