Rubyn: различия между версиями

4 байта добавлено ,  2 года назад
м (орфография, викификатор)
[[Файл:RubyNumericClasses.png|thumb|right|Числовые типы данных]]
 
В отличие от большинства элементарных типов данных, числа обладают своей иерархией. Все числа в Руби наследованы от класса Numeric (Числовой). Поэтому, если хотите добавить новый метод ко всем числам, то нужно расширять именно этот класс. Далее идет деление чисел: Integer ([[w:Целое число|целое]]), Float ([[w:Десятичная дробь|дробное]]) и Complex ([[w:Комплексное число|комлексноекомплексное]]). При желании можно добавить и Rational ([[w:Рациональное число|рациональное]]), но на данном семейном портрете оно отсутствует.
 
От класса Integer наследуются <big>два</big> класса: Fixnum (целое маленькое) и Bignum (целое большое). К первому относятся все числа, [[w:Абсолютная величина|по модулю]] меньшие <math>2^{31}</math> , а ко второму — все остальные.
* Fixnum автоматически становится Bignum по превышении <math>2^{31}</math> по модулю. И наоборот, падая ниже, Bignum преобразуется в Fixnum.
* Из отрицательного числа можно получить корень, когда подключена библиотека <code>mathn</code>. Он будет типа Complex (комплексное).
* Как только число типа Complex (комплексное) лишается мнимой части, то оно становится либо Integer (Fixnum или Bignum), либо Float (в зависимости от типа действительной части). Если подключена библиоткабиблиотека <code>mathn</code>, получится число типа Rational (рациональное).
* Если в результате арифметических действий в числе типа Rational знаменатель приравнивается 1, то оно преобразуется к числу Integer (Fixnum или Bignum).}}
 
93

правки