Ruby Float 运算类
在Ruby中,Float类是Numeric类的一个子类。Float类的对象使用本地架构的双精度浮点表示法来表示实数。
公共实例方法
- Arithmetic Operations: 该方法对float进行各种算术运算。
1. Addition: 它返回浮点数与数值之和的结果。
float + numeric
- Subtraction: 它返回浮点数与数值之差的结果。
float - numeric
- Multiplication: 它返回浮点数和数值的除法结果。
float * numeric
- Division: 它返回浮点数和数值的除法结果。
float / numeric
- Modulo: 它返回浮点数和数字的摩尔值的结果。
float % numeric
- Exponent: 它返回浮点数的幂值和数值的浮点数的结果。
float ** numeric
- Unary minus: 它返回浮点数字。
float -@
示例:
# Ruby program to illustrate
# Arithmetic operation
a = 2.1
b = 2
# Addition
c = a + b
puts "addition #{c}"
# Subtraction
d = a - b
puts "subtraction #{d}"
# Multiplication
e = a * b
puts "multiplication #{e}"
# Division
f = a / b
puts "division #{f}"
# Modulo
g = a % b
puts "modulo #{g}"
# Exponent
h = a ** b
puts "exponent #{h}"
# Unary minus
i= -a
puts "unary minus #{i}"
输出:
addition 4.1
subtraction 0.1
multiplication 4.2
division 1.05
modulo 0.1
exponent 4.41
unary minus -2.1
- **<=> ** : 这个方法返回-1,0,或+1,取决于float。如果float小于数值,那么它将返回-1,如果float等于数值,那么它将返回0,或者如果float大于数值,那么它将返回+1。
float <=> numeric --> 1, 0, +1
示例:
# Ruby program to illustrate
# <=> Method
puts 2.1 <=> 4
puts 2.0 <=> 2
puts 4.6 <=> 2
输出:
-1
0
1
- == : 如果obj等于float,该方法返回真,否则返回假。
float == obj --> true or false
示例:
# Ruby program to illustrate
# == Method
puts 3.8 == 4
puts 3.8 == 3.8
输出:
false
true
- abs : 该方法返回float的绝对值。
float.abs --> numeric
示例:
# Ruby program to illustrate
# abs Method
puts (-54.56).abs
puts (-65.04).abs
输出:
54.56
65.04
- ceil : 该方法返回大于或等于float的最小整数。这个方法的返回类型是int。
float.ceil --> int
示例:
# Ruby program to illustrate
# ceil Method
puts (4.1).ceil
puts (4.0).ceil
puts (-4.1).ceil
输出:
5
4
-4
- divmod : 该方法将返回一个数组,其中包含num除以numeric得到的商和模。
float.divmod(numeric) --> array
示例:
# Ruby program to illustrate
# divmod Method
p (45.0.divmod 5)
p (98.0.divmod 5)
输出:
[9, 0.0]
[19, 3.0]
- eql? : 本方法检查obj是否为Float,并且包含与float相同的值。如果它们包含相同的值,那么它将返回true,否则返回false。这个方法的返回类型是布尔值。
float.eql?(obj) --> true or false
示例:
# Ruby program to illustrate
# eql? Method
puts 4.2.eql?(2)
puts 1.2.eql?(1.2)
输出:
false
true
- finite? : 本方法检查float是否为有效的IEEE浮点数。如果float是有效的IEEE浮点数,那么它将返回true,否则它将返回false。
float.finite? --> true or false
示例:
# Ruby program to illustrate
# finite? Method
puts (45.0).finite?
puts (45.0/0.0).finite?
输出:
true
false
- floor : 该方法返回小于或等于float的最大整数。
float.floor --> int
示例:
# Ruby program to illustrate
# floor Method
puts 2.2. floor
puts (-4.6).floor
输出:
2
-5
- infinite? : 这个方法返回nil, -1, 或者+1,这取决于float。如果float是有限的,那么它返回nil,如果float是-无限的,那么它返回-1,或者如果float是+无限的,它返回+1。
float.infinite? --> nil, -1, +1
示例:
# Ruby program to illustrate
# infinite? Method
puts (1.1).infinite?
puts (-1.1/0.0).infinite?
puts (+1.1/0.0).infinite?
输出:
nil
-1
1
- modulo: 这种方法类似于Float#%方法。
float.modulo(numeric) --> numeric
示例:
# Ruby program to illustrate
# modulo Method
puts 32.45.modulo(20)
输出:
12.450000000000003
- nan? : 如果float是一个无效的IEEE浮点数,该方法返回真,否则返回假。这个方法的返回类型是布尔型。
float.nan? --> true or false
示例:
# Ruby program to illustrate
# nan? Method
puts (-2.2). nan?
puts (0.0/0.0). nan?
输出:
false
true
- round: 该方法将浮点数四舍五入为最接近的整数值。这个方法的返回类型是int。
float..round(digits=0) --> numeric
示例:
# Ruby program to illustrate
# round Method
puts 6.7.round
puts (-8.9).round
输出:
7
-9
- to_f : 该方法返回float。
float.to_f --> float
- to_i : 该方法将浮点数截断为整数。这个方法的返回类型是int。
float.to_i --> int
示例:
# Ruby program to illustrate
# to_i Method
puts 5.6.to_i
输出:
5
- to_int : 这个方法类似于Float#to_i。
float.to_int --> int
- to_s : 该方法返回一个字符串,其中包含自我的表示,以及一个固定或指数形式的数字。该调用可能会返回NaN、infinity和-infinity。
float.to_s --> string
- truncate 。该方法等同于Float#to_i方法。这个方法的返回类型是int。
float.truncate
- zero? 。如果float是0.0,该方法返回真,否则返回假。这个方法的返回类型是布尔值。
float.zero? --> true or false
示例:
# Ruby program to illustrate
# zero? Method
puts (0.0).zero?
puts (1.4).zero?
输出:
true
false
Float类包含常量,这些常量列举如下。
常量 | 描述 |
---|---|
DIG | 保持双精度浮点数中最小的有效小数位数,默认为15。 |
EPSILON | 它持有1和大于1的最小双精度浮点数之间的差值,默认为2.2204460492503131e-16。 |
MANT_DIG | 它持有RADIX基数的尾数位数。默认为53。 |
MAX | 它持有双精度浮点数中可能的最大整数,默认为1.7976931348623157e+308。 |
MAX_10_EXP | 它代表双精度浮点数中最大的正指数,10升到这个幂数减去1。默认为308。 |
MAX_EXP | 它是双精度浮点中可能的最大指数值,默认为1024。 |
MIN | 它是双精度浮点数中最小的正归一化数字。默认为2.2250738585072014e-308。 |
MIN_10_EXP | 它是双精度浮点数中最小的负指数,10升到这个幂数减去1。默认为-307。 |
MIN_EXP | 它是双精度浮点数中可能的最小指数值。默认值为-1021 |
RADIX | 浮点数表示的拉德数,换句话说,它是浮点数的基数。在大多数系统中默认为2,代表10进制的小数。 |
ROUND | 它表示浮点运算的舍入模式。包括的值有:。 -1:如果模式是不确定的;0:如果向零舍入;1: 如果四舍五入是最接近可表示的值;2:如果四舍五入朝向+无穷大;3: 如果四舍五入朝向+无穷大; |
NaN | 它是一个表达式,代表一个 “非数字 “的值。 |
INFINITY | 它是一个代表正无穷的表达式。 |
Reference: https://ruby-doc.org/core-2.4.0/Float.html