diff --git a/pkg/expression/builtin_math.go b/pkg/expression/builtin_math.go index 9b67e6c6c3de1..0d3ff3fa57a60 100644 --- a/pkg/expression/builtin_math.go +++ b/pkg/expression/builtin_math.go @@ -1818,7 +1818,7 @@ func (b *builtinRadiansSig) evalReal(row chunk.Row) (float64, bool, error) { 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 9e44f6e5167e5..11a8c43dade7b 100644 --- a/pkg/expression/builtin_math_test.go +++ b/pkg/expression/builtin_math_test.go @@ -751,6 +751,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 896fe64018f42..c21d143aefd57 100644 --- a/pkg/expression/builtin_math_vec.go +++ b/pkg/expression/builtin_math_vec.go @@ -310,7 +310,7 @@ func (b *builtinRadiansSig) vecEvalReal(input *chunk.Chunk, result *chunk.Column 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 5a4f5f7e31fe9..6bab8d8948217 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);