Math

支持浮点运算的类. 在Math模块中, 定义了两套内容相同的方法和特殊方法, 因此,既可以使用模块的特殊方法, 又可以将模块包含到类中之后,使用它的普通方法.

例:

pi = Math.atan2(1, 1)*4;
include Math
pi2 = atan2(1, 1)*4

模块函数:

Math.acos(x)
Math.asin(x)
Math.atan(x)

以弧度返回x的反三角函数值.

返回值的范围分别是[0, +π][-π/2, +π/2]、 (-π/2, +π/2).

在acos(x), asin(x)中,x的取值范围必为 -1.0 <= x <= 1 .(通常返回NaN)

ruby 1.7 特性: acos(), asin()遇到超出范围的参数时,会引发Errno::EDOM异常.

Math.atan2(y, x)

返回 [-π , π] 之间的 y/x的反正切值.

Math.acosh(x) ((<ruby 1.7 特性>))
Math.asinh(x) ((<ruby 1.7 特性>))
Math.atanh(x) ((<ruby 1.7 特性>))

返回x的反双曲线函数值.

asinh(x) = log(x + sqrt(x * x + 1))
acosh(x) = log(x + sqrt(x * x - 1)) [x >= 1]
atanh(x) = log((1+x)/(1-x)) / 2     [-1 < x < 1]

在acosh(x)中,x的取值范围是x >= 1 . (通常会引发Errno::EDOM异常)

在atanh(x)中,x的取值范围是 -1.0 < x < 1 .(通常会引发Errno::EDOM异常)

Math.cos(x)
Math.sin(x)
Math.tan(x)

返回[-1, 1]之间的以弧度表示的x的三角函数值.

Math.cosh(x) ((<ruby 1.7 特性>))
Math.sinh(x) ((<ruby 1.7 特性>))
Math.tanh(x) ((<ruby 1.7 特性>))

返回x的双曲线函数的值.

cosh(x) = (exp(x) + exp(-x)) / 2
sinh(x) = (exp(x) - exp(-x)) / 2
tanh(x) = sinh(x) / cosh(x)
Math.erf(x) ((<ruby 1.8 特性>))
Math.erfc(x) ((<ruby 1.8 特性>))

返回 x 的误差函数(erf)、补余误差函数(erfc)的值.

Math.exp(x)

返回x 的指数函数的值.

Math.frexp(x)

返回实数x 的指数部分和假数部分.

Math.hypot(x, y) ((<ruby 1.7 特性>))

返回sqrt(x*x + y*y).

Math.ldexp(x,exp)

先以2为底数进行exp的指数运算, 然后乘以实数x,返回计算结果.

Math.log(x)

返回x的自然对数.

x必为正数(通常情况下, 若为负值则返回NaN , 若为0则返回-Infinity)

ruby 1.7 特性: 遇到超出范围的参数时, 若为负数则引发Errno::EDOM异常, 若为0则引发Errno::ERANGE异常.

Math.log10(x)

返回x的常用对数.

x必为正数(通常情况下, 若为负值则返回NaN , 若为0则返回-Infinity)

ruby 1.7 特性: 遇到超出范围的参数时, 若为负数则引发Errno::EDOM异常, 若为0则引发Errno::ERANGE异常.

Math.sqrt(x)

返回x的平方根. 若x为负值, 则引发ArgumentError异常.

ruby 1.7 特性: 通常情况下, 若x为负值,则引发Errno::EDOM异常.

常数:

E

自然对数的底数

p Math::E
# => 2.718281828
PI

圆周率

p Math::PI
# => 3.141592654