Ответ 1
Масштаб, круглый, нечеткий:
round(x / 500.0) * 500.0
Изменить. Чтобы округлить до следующего кратного 500, используйте те же логики с math.ceil()
вместо round()
:
math.ceil(x / 500.0) * 500.0
Я ищу, чтобы найти способ округлить до ближайшего 500. Я использовал:
math.ceil(round(8334.00256 + 250, -3))
У меня есть значение из шкалы на карте, которую я делаю в ArcGIS. У меня есть способность читать и писать масштабный коэффициент (т.е. 1: 8334.... в основном, вы устанавливаете тысячный, а по умолчанию - коэффициент). Если масштабный коэффициент не является фактором 500, я хочу округлить к следующему 500. Математика будет округлять любое десятичное значение, а раунд (n, -3) округляется до ближайшей тысячной, но я изо всех сил пытаюсь найти способ округления до ближайшего 500.
Любые предложения? Благодаря, Mike
Масштаб, круглый, нечеткий:
round(x / 500.0) * 500.0
Изменить. Чтобы округлить до следующего кратного 500, используйте те же логики с math.ceil()
вместо round()
:
math.ceil(x / 500.0) * 500.0
Я лично считаю округление, но беспорядочным. Я бы предпочел использовать:
(x+250)//500*500
//
означает целочисленное деление.
ИЗМЕНИТЬ: О, я пропустил, что вы кругом "вверх". Тогда возможно
-(-x//500)*500
Возможно, что-то вроде этого:
round(float(x) / 500) * 500
Преобразование "float" не нужно, если вы используете Python 3 или более поздней версии, или если вы выполняете оператор from __future__ import division
для целочисленного целочисленного деления.