Как в ruby возвести число в степень 1 / n?

Я просто хочу возвести число в степень 1 / n. Если я сделаю так: 2 ** (1/7), я всегда получу 1, независимо от n; и это происходит только тогда, когда dividen равен 1.

Заранее спасибо.

попробуйте 2 ** (1.0 / 7), чтобы избежать целочисленного деления

Sergio Tulentsev 13.09.2018 18:58

Ruby имеет класс Rational: 2 ** (1/7r)

Stefan 13.09.2018 20:10

Комментарий @ Stefan должен быть правильным ответом. Лучше принятого.

sawa 14.09.2018 08:57

@sawa не уверен, что это более правильно - результат в любом случае будет с плавающей запятой, например 9 ** (1/2r) возвращает 3.0, а не 3 или (3/1)

Stefan 14.09.2018 09:16

@Stefan Я думаю, этого и следовало ожидать. Это потому, что 1 / n-я степень в целом не рациональна. Но я думаю, что ОП намерение написать 1/7 было 1/7 как рациональное число.

sawa 14.09.2018 10:18
0
5
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Запустите 1/7 в консоли и посмотрите, что у вас получится.

Затем попробуйте 1.0 / 7.0, чтобы избежать «целочисленного деления».

Другие вопросы по теме