📜  红宝石 |浮点类 - 值(1)

📅  最后修改于: 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中的浮点数类型可以进行基本的算术运算,但要注意到精度问题。同时,有理数可以作为动态浮点数来处理,在需要高精度计算的情况下可以考虑使用。