📅  最后修改于: 2023-12-03 15:27:31.708000             🧑  作者: Mango
Ruby是一种动态、面向对象的编程语言,它支持多种数据类型,包括浮点数和整数。本文将介绍Ruby中的浮点数类型。
Ruby中创建浮点数可以通过直接赋值或使用to_f方法将整数转换为浮点数。
# 直接赋值
a = 1.23
puts a.class # => Float
# 整形转浮点型
b = 5.to_f
puts b.class # => Float
Ruby中的浮点数支持基本的算术运算符,包括加法、减法、乘法和除法。
a = 10.5
b = 3.0
puts a + b # => 13.5
puts a - b # => 7.5
puts a * b # => 31.5
puts a / b # => 3.5
同时还支持取模(%)和自减(-)自增(+)运算符。
a = 10.5
b = 3.0
puts a % b # => 1.5
puts a += b # => 13.5
puts a -= b # => 10.5
浮点数比较时需要特别注意,由于浮点数在计算机中是以二进制形式表示的,在一些情况下比较两个看似相等的浮点数时可能会出现误判。
# 错误示例
a = 0.1 + 0.2
b = 0.3
puts a == b # => false
# 正确示例
a = 0.1 + 0.2
b = 0.3
puts (a - b).abs < 0.0001 # => true
Ruby中可以使用运算符“Rational”创建一个有理数,也就是动态浮点数,使用时需要先将整数或浮点数转化为有理数再进行运算。
# 创建有理数
r = Rational(2, 3)
puts r # => (2/3)
# 使用有理数进行运算
a = 10
b = 3
puts (a / b).to_r # => (10/3)
Ruby中的浮点数类型可以进行基本的算术运算,但要注意到精度问题。同时,有理数可以作为动态浮点数来处理,在需要高精度计算的情况下可以考虑使用。