Добавить процент к числу в рубине - PullRequest
1 голос
/ 04 июля 2019

Как мне добавить процент к числу в Ruby?

В этом примере я хочу добавить 20% к 32.92:

irb(main):001:0> 32.92 * (1 + (20 / 100))
=> 32.92

Google отвечает с правильным ответом; 39.50.

Ответы [ 2 ]

6 голосов
/ 04 июля 2019

Допустим, ваше базовое значение: 39,92 .Ваша разметка 20 .

Целочисленное деление приведет к следующему:

20 / 100
# => 0

Таким образом, irb - правильное направление.Это дает лучшие результаты:

20.to_f / 100
# => 0.2

Таким образом, окончательный расчет будет выглядеть следующим образом:

final_value = (base_value + (markup.to_f / 100) * base_value).round

Это даст вам ожидаемое значение.

Поскольку вы этого не сделаетеНе обращая внимания на округленный результат, можно получить правильный результат, используя целочисленное деление:

final_value = base_value + base_value * markup / 100
4 голосов
/ 04 июля 2019

20 / 100 возвращает 0, потому что это целочисленное деление, если вы передаете целые числа в качестве аргументов.Вместо этого вы можете передавать числа с плавающей точкой, например:

32.92 * (1 + (20.0 / 100.0))

или просто:

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