Округление поплавка до ближайшего множителя? - PullRequest
6 голосов
/ 07 декабря 2008

У меня небольшая математическая задача, которую я пытаюсь решить

Учитывая число x и разрешение y, мне нужно найти следующий x 'с требуемым разрешением.

, например

x = 1.002     y = 0.1   x'= 1.1

x = 0.348     y = 0.1   x'= 0.4

x = 0.50      y = 1     x'= 1

x = 0.32      y = 0.05     x'= 0.35

Есть ли какой-нибудь умный способ сделать это в Python?

1 Ответ

12 голосов
/ 07 декабря 2008
import math

def next_multiple(x, y):
    return math.ceil(x/y)*y

def try_it(x, y):
    print x, y, next_multiple(x, y)

for x, y in [
    (1.002, 0.1),
    (0.348, 0.1),
    (0.50, 1),
    (0.32, 0.05)
    ]:
    try_it(x, y)

производит:

1.002 0.1 1.1
0.348 0.1 0.4
0.5 1 1.0
0.32 0.05 0.35

Я думаю, что ваш первый пример вывода неверен, правильный ответ для x 'равен 1,1, верно?

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