📅  最后修改于: 2023-12-03 14:56:46.392000             🧑  作者: Mango
在 Ruby 语言中,BigDecimal 是一个用于处理高精的浮点数的类,而 sqrt() 函数则是 BigDecimal 类的一个方法,用于求出 BigDecimal 对象的平方根。下面我们来介绍这个有趣的函数。
BigDecimal sqrt() 函数的语法如下:
BigDecimal.sqrt(precision)
其中,precision 参数为可选,表示要求的精度位数。如果不传递 precision 参数,则默认使用 BigDecimal.context 的当前精度。
函数返回一个 BigDecimal 对象,表示源对象的非负平方根。如果源对象为负数,则返回 NaN。
require 'bigdecimal'
num1 = BigDecimal.new('16')
puts num1.sqrt # 输出 4.0
num2 = BigDecimal.new('2')
puts num2.sqrt(20) # 输出 1.4142135623730950488
上述代码首先导入了 BigDecimal 类,然后定义了两个 BigDecimal 对象 num1 和 num2,分别初始化为 16 和 2。在第一个示例中,调用 sqrt() 函数并输出结果为 4.0,即 16 的平方根。
在第二个示例中,调用 sqrt(20) 函数并指定 precision 参数为 20,因此返回值保留了 20 位小数。