Julia - 算术基本函数
符号函数和绝对值函数
abs(x) 函数求 x 的绝对值(幅值)
julia> abs(3) 3 julia> abs(-3) 3
abs2(x) 函数求 x 的绝对值(幅值)的平方
julia> abs2(3) 9 julia> abs2(-3) 9
sign(x) 函数求 x 的正负号,返回 -1,0,+1
julia> sign(3) 1 julia> sign(-3) -1 julia> sign(0) 0
signbit(x) 判断是否有符号位,返回 Bool 值
julia> signbit(36) false julia> signbit(-36) true
copysign(x, y) 返回一个数,这个数具有 x 的值,y 的符号位
julia> copysign(-3, -36) -3 julia> copysign(-3, 36) 3 julia> copysign(3, -36) -3
flipsign(x, y) 返回一个数,这个数具有 x 的值,x*y 的值的符号位
julia> flipsign(3, 2) 3 julia> flipsign(3, -2) -3 julia> flipsign(-3, 2) -3 julia> flipsign(-3, -2) 3
乘方,对数和开方
sqrt(x) 求 x 的平方根
julia> sqrt(9) 3.0
cbrt(x) 求 x 的立方根
julia> cbrt(27) 3.0 julia> cbrt(-27) -3.0
hypot(x,y) 为误差较小的 sqrt(x^2 + y^2)
julia> sqrt(3^2 + 5^2) 5.830951894845301 julia> hypot(3, 5) 5.8309518948453
exp(x) 计算自然指数 e 的 x 次幂
julia> exp(2) 7.38905609893065 julia> exp(1) 2.718281828459045
log(x) 计算 x 的对数
julia> log(16) 2.772588722239781
log(x, y) 求以 x 为底 y 的对数
julia> log(3, 81) 4.0
log2(x) 求以 2 为底 x 的对数
julia> log2(16) 4.0
log10(x) 求以 10 为底 x 的对数
julia> log10(100) 2.0
log1p(x) 当 x 接近 0 时,精确计算 log(1+x)
julia> log1p(0.01) 0.009950330853168083
exponent(x) 求 x 的二进制指数
julia> exponent(0.2) -3
significand(x) 求浮点数 x 的二进制有效数(a.k.a. 尾数)
julia> significand(0.2) 1.6
除法函数
div(x, y) 截断取整除法,x 除以 y,商向 0 舍入
julia> div(9, 3) 3 julia> div(10, 3) 3
fld(x, y) 为向下取整除法,x 除以 y,商向 -Inf 舍入
julia> 16.5 / 5 3.3 julia> fld(16.5, 5) 3.0 julia> 18.5 / 5 3.7 julia> fld(18.5, 5) 3.0
cld(x, y) 为向上取整除法,x 除以 y,商向 +Inf 舍入
julia> 16.5 / 5 3.3 julia> cld(16.5, 5) 4.0 julia> 18.5 / 5 3.7 julia> cld(18.5, 5) 4.0
rem(x, y) 为除法的余数,满足 x == div(x, y)*y + rem(x, y),与 x 同号
julia> rem(10, 3) 1 julia> rem(9, 3) 0 julia> rem(10.12, 3) 1.1199999999999992
mod(x, y) 为取模余数,满足 x == fld(x, y)*y + mod(x, y),与 y 同号
julia> mod(16.5, 5) 1.5 julia> rem(16.5, 5) 1.5
mod1(x, y) 为偏移 1 的mod,返回 r∈(0,y] 其中 y>0 或者 r∈[y,0) 其中 y<0,其中 mod(r, y) == mod(x, y)
julia> mod1(8, 4) 4 julia> mod1(-8, 4) 4
mod2pi(x) 对 2pi 取模余数,0 <= mod2pi(x) < 2pi
julia> mod2pi(9*pi/4) 0.7853981633974481
gcd(x, y...) 求 x, y, ... 的最大公约数,与 x 同号
julia> gcd(6, 9, 27) 3 julia> gcd(6, -9, 27) 3
lcm(x, y...) 求 x, y, ... 的最小公倍数,与 x 同号
julia> lcm(2, 3, 4) 12 julia> lcm(2, 3, -4) 12
divrem(x, y) 返回 (div(x, y),rem(x, y)),即为商和余数
julia> divrem(10, 3) (3, 1)
fldmod(x, y) 返回 (fld(x, y),mod(x, y))
julia> fldmod(16.5, 5) (3.0, 1.5)
舍入函数
round(x) 把 x 四舍五入到最近的整数,返回 x 的类型
julia> round(3.3) 3.0 julia> round(3.7) 4.0
round(T, x) 把 x 四舍五入到最近的整数,返回 T 类型
julia> round(Int, 3.7) 4
floor(x) 把 x 向 -Inf 取整,返回 x 的类型
julia> floor(3.3) 3.0 julia> floor(3.7) 3.0
floor(T, x) 把 x 向 -Inf 取整,返回 T 类型
julia> floor(Int, 3.7) 3
ceil(x) 把 x 向 +Inf 取整,返回 x 的类型
julia> ceil(3.3) 4.0 julia> ceil(3.7) 4.0
ceil(T, x) 把 x 向 +Inf 取整,返回 T 类型
julia> ceil(Int, 3.7) 4
trunc(x) 把 x 向 0 取整,返回 x 的类型
julia> trunc(3.1) 3.0 julia> trunc(-3.1) -3.0
trunc(T, x) 把 x 向 0 取整,返回 T 类型
julia> trunc(Int, -3.1) -3