Почему eval ('7/14'). To_f возвращает 0.0? - PullRequest
0 голосов
/ 04 сентября 2018

Я должен оценить строки, чтобы получить результат. Например,

eval('5*6.45').to_f # => 32.25

ожидается.

Почему я получаю:

eval('7/14').to_f # => 0.0

вместо 0.5? Как я могу получить соответствующее значение? В моей игре (GUI) у меня должно быть 14, а не 14.0.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Это потому, что (абсолютное значение) 7 меньше, чем (абсолютное значение) 14. Это дает 0. Тогда 0, преобразованный в число с плавающей запятой, равен 0,0.

0 голосов
/ 04 сентября 2018
eval('7/14')

совпадает с

7/14

, что равно 0 (целочисленное деление). Преобразование 0 в float приводит к нулю как float, то есть 0.0

Если бы вы написали (т.е.)

7.0/14

, вы получите желаемый результат.

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