Ruby/Справочник/Float
Класс Float < Numeric
[править]Объекты класса Float представляют собой вещественные числа, то есть дробные числа с плавающей точкой двойной точности (аналог типа double в языке Си).
Примеси
Precision (prec, prec_f, prec_i)
Константы
DIG, EPSILON, MANT_DIG, MAX, MAX_10_EXP, MAX_EXP, MIN, MIN_10_EXP, MIN_EXP, RADIX, ROUNDS
Методы класса
Методы объекта
%, **, *, +, -@, -, /, <->, <=, <, ==, >=, >, abs, ceil, coerce, divmod, eql?, finite?, floor, hash, infinite?, modulo, nan?, round, to_f, to_int, to_i, to_s, truncate, zero?
Float::induced_from
[править]Float.induced_from(obj) #-> float
Преобразует obj в вещественное число.
Float#%
[править]flt % other #-> float
flt.modulo(other) #-> float
Возвращает остаток от деления числа flt на число other.
6543.21 % 137 #-> 104.21
6543.21 % 137.24 #-> 92.9299999999996
Методы % и modulo — абсолютно идентичны, то есть являются именами одного и того же метода |
Float#*
[править]flt * other #-> float
Возвращает вещественное число, которое является результатом произведения flt на other.
Полезно посмотреть на методы **, +, -, / и %, которые имеют схожую функциональность |
Float#**
[править]flt ** other #-> float
Возвращает вещественное число, которое является результатом возведения числа flt в степень other.
Полезно посмотреть на методы *, +, -, / и %, которые имеют схожую функциональность |
Float#+
[править]flt + other #-> float
Возвращает вещественное число, которое является суммой чисел flt и other.
Полезно посмотреть на методы **, *, -, / и %, которые имеют схожую функциональность |
Float#-
[править]flt - other #-> float
Возвращает вещественное число, которое является разностью чисел flt и other.
Полезно посмотреть на методы **, +, *, / и %, которые имеют схожую функциональность |
Float#-@
[править]-flt #-> float
Возвращает вещественное число, обратное по знаку (по отношению к flt).
Float#/
[править]float / other #-> float
Возвращает вещественное число, которое является частным чисел flt и other.
Полезно посмотреть на методы **, +, -, * и %, которые имеют схожую функциональность |
Float#<
[править]flt < other #-> true или false
Возвращает true, если число flt меньше, чем число other.
Float#<=
[править]flt <= other #-> true or false
Возвращает true, если число flt меньше или равно по отношению к числу other.
Float#<=>
[править]flt <=> numeric #-> -1, 0, +1
Возвращает -1, 0 или +1, когда число flt меньше, равно или больше числа numeric, соответственно. Этот метод необходим для нормальной работы примеси Comparable.
Float#==
[править]flt == obj #-> true или false
Возвращает true только если число obj имеет точно такое же значение, как и число flt. В отличие от метода eql?, преобразует obj в вещественное число.
1.0 == 1 #-> true
Float#>
[править]flt > other #-> true или false
Возвращает true, если число flt больше, чем число other.
Float#>=
[править]flt >= other #-> true или false
Возвращает true, если число flt больше или равно по отношению к числу other.
Float#abs
[править]flt.abs #-> float
Возвращает абсолютную величину числа flt.
(-34.56).abs #-> 34.56
-34.56.abs #-> 34.56
Float#ceil
[править]flt.ceil #-> integer
Возвращает наименьшее целое число большее или равное числу flt.
1.2.ceil #-> 2
2.0.ceil #-> 2
(-1.2).ceil #-> -1
(-2.0).ceil #-> -2
Полезно посмотреть на методы floor, round и truncate, которые имеют схожую функциональность |
Float#coerce
[править]flt.coerce(other) #-> array
Возвращает массив, состоящий из чисел other и flt, которые преобразованы к вещественному типу. Этот метод используется при обработке арифметических операций со смешанными типами.
1.2.coerce(3) #-> [3.0, 1.2]
1.0.coerce(2.0) #-> [2.0, 1.0]
Float#divmod
[править]flt.divmod(numeric) #-> array
См. описание метода Numeric#divmod.
Float#eql?
[править]flt.eql?(obj) #-> true или false
Возвращает true, если obj является вещественным числом и имеет значение равное flt. В отличие от метода ==, преобразований типов не производится.
1.0.eql?(1) #-> false
Float#finite?
[править]flt.finite? #-> true или false
Возвращает true, если flt является правильным вещественным числом по стандартам IEEE (то есть не является бесконечностью и метод nan? возвращает false).
Float#floor
[править]flt.floor #-> integer
Возвращает наибольшее целое, меньшее или равное flt.
1.2.floor #-> 1
2.0.floor #-> 2
(-1.2).floor #-> -2
(-2.0).floor #-> -2
Полезно посмотреть на методы ceil, round и truncate, которые имеют схожую функциональность |
Float#hash
[править]flt.hash #-> integer
Возвращает хеш-код вещественного числа flt.
Float#infinite?
[править]flt.infinite? #-> nil, -1, +1
Возвращает nil, -1 или +1, если вещественное число flt конечно, устремлено в или в , соответственно.
(0.0).infinite? #-> nil
(-1.0/0.0).infinite? #-> -1
(+1.0/0.0).infinite? #-> 1
Float#modulo
[править]flt % other #-> float
flt.modulo(other) #-> float
Возвращает остаток от деления числа flt на число other.
6543.21.modulo(137) #-> 104.21
6543.21.modulo(137.24) #-> 92.9299999999996
Float#nan?
[править]flt.nan? -> true или false
Возвращает true, если число flt не удовлетворяет стандарту IEEE на вещественные числа.
a = -1.0 #-> -1.0
a.nan? #-> false
a = 0.0/0.0 #-> NaN
a.nan? #-> true
Float#round
[править]flt.round #-> integer
Возвращает ближайшее целое число к вещественному числу flt. Метод эквивалентен следующей записи:
def round
return floor(self+0.5) if self > 0.0
return ceil(self-0.5) if self < 0.0
return 0.0
end
1.5.round #-> 2
(-1.5).round #-> -2
Полезно посмотреть на методы floor, ceil и truncate, которые имеют схожую функциональность |
Float#to_f
[править]flt.to_f #-> flt
Так как flt уже является вещественным числом, то данный метод всегда возвращает ftl.
Float#to_i
[править]flt.to_i #-> integer
flt.to_int #-> integer
flt.truncate #-> integer
Возвращает целое число, которое является целой частью вещественного числа flt.
Методы to_i, to_int и truncate — абсолютно идентичны, то есть являются именами одного и того же метода |
Float#to_int
[править]flt.to_i #-> integer
flt.to_int #-> integer
flt.truncate #-> integer
Возвращает целое число, которое является целой частью вещественного числа flt.
Методы to_i, to_int и truncate — абсолютно идентичны, то есть являются именами одного и того же метода |
Float#to_s
[править]flt.to_s #-> string
Возвращает строку, которая содержит строковое представление вещественного числа flt. Число flt может быть представлено как в обычной, так и в экспоненциальной форме записи, а также иметь значения NaN, Infinity, -Infinity.
Float#truncate
[править]flt.to_i #-> integer
flt.to_int #-> integer
flt.truncate #-> integer
Возвращает целое число, которое является целой частью вещественного числа flt.
Полезно посмотреть на методы floor, round и ceil, которые имеют схожую функциональность |
Методы to_i, to_int и truncate — абсолютно идентичны, то есть являются именами одного и того же метода |
Float#zero?
[править]flt.zero? -> true или false
Возвращает true, если вещественное число flt является числом 0.0.