как найти обратное число в рубине - PullRequest
3 голосов
/ 31 марта 2010

Я новичок в рубине.Может кто-нибудь сказать мне, как найти обратное число в ruby. Есть ли какая-нибудь функция для этого?или только 1 / номер?Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 31 марта 2010

Вам нужно использовать числа с плавающей точкой:

1.0 / number

Если вы используете 1 / number, а число - это целое число 5, вы просто получите 0 вместо 0,2.

3 голосов
/ 31 марта 2010

Вы можете использовать что-то другое, например:

number**(-1)

то же самое, что и

1.0/number
3 голосов
/ 31 марта 2010

Хотя это не совсем ответ на ваш вопрос, я думаю, что мы должны упомянуть здесь Rational класс, подходящий для хранения рациональных чисел без потерь, подразумеваемых с хранением чисел с плавающей точкой, т.е. в виде дробей

n = 3
#=> 3
r = Rational(1,3)
#=> 13 # don't let this confuse you, this is 1/3 in fact
r.to_s
#=> "1/3"

Вы можете выполнять обычную рациональную арифметику для таких чисел, сохраняя точность дробей:

r = r * r
#=> 19
r.to_s
#=> "1/9"

И, в конце концов, вы можете преобразовать эти числа в обычные числа с плавающей запятой:

r.to_f
#=> 0.111111111111111
0 голосов
/ 06 октября 2015

Если ваш номер Rational, вы можете использовать составные части для создания обратного значения Rational:

@rational = Rational(1,27)
@inverse = Rational(@rational.denominator, @rational.numerator)

Как ни странно, Rational не имеет обратной функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...