📅  最后修改于: 2023-12-03 15:11:36.543000             🧑  作者: Mango
在 Ruby 编程语言中,浮点类型是一种用于存储小数的数据类型。 浮点数是有小数点的数字,例如 3.14 或 1.618。 在 Ruby 中,浮点数默认类型是 Float 类型。
我们可以直接将一个数值转成浮点类型,或者指定浮点数值的方式来创建一个浮点数据。
# 直接将数值转成浮点类型
a = 3
b = 3.0
puts a.class # => Integer
puts b.class # => Float
# 使用 .to_f 方法将整数转成浮点类型
c = 4.to_f
puts c.class # => Float
# 直接指定浮点数创建浮点数据
d = 1.123
puts d.class # => Float
浮点数据类型支持常见的算术运算符,例如 +
, -
, *
, /
等。
# 加法
puts 1.0 + 2.0 # => 3.0
# 减法
puts 1.0 - 0.9 # => 0.1
# 乘法
puts 1.5 * 2.0 # => 3.0
# 除法
puts 1.0 / 2.0 # => 0.5
由于计算机内部表示小数时采用的是二进制,而不是十进制,因此会产生浮点数精度问题。这种问题被称为 IEEE 754 标准规定的浮点数陷阱。
puts 1.1 - 1.0 # => 0.10000000000000009
在比较浮点数时,为了避免精度问题,一般使用浮点数的差值,和一个非常小的值进行比较。
a = 1.1
b = 1.0 + 0.1
puts (a - b).abs < 1e-10 # => true
浮点数值内置了许多有用的方法,我们可以通过 .
操作符调用这些方法。
x = 3.1415926
# 四舍五入取整
puts x.round(2) # => 3.14
# 向上取整
puts x.ceil # => 4
# 向下取整
puts x.floor # => 3
# 转成科学计数法字符串
puts x.to_s('E') # => "3.1415926E+00"
在 Ruby 中,浮点类是用于存储小数的一种数据类型,它支持常见的算术运算符和许多有用的方法。但由于浮点数精度问题,我们需要特别小心。