Использование Python 2.7 и -1/2 будет результатом -1, так как -1 - слово -0.5. Но я хочу получить результат 0, который равен 1/2 (результат равен 0), затем отрицательный 1/2 (окончательный результат все еще 0). Интересно, есть ли элегантный способ сделать это?отрицательное числовое деление на Python
Мое настоящее решение использует абс и сначала проверяет их знак, который кажется не очень изящным, задаваясь вопросом, есть ли у кого-нибудь более элегантные решения?
Исходный код в Python 2.7,
a = -1
b = 2
print a/b # output -1
# prefer -(1/2) = 0
r = abs(a)/abs(b)
if (a > 0 and b < 0) or (a < 0 and b > 0):
r = -r
print r
Этот ответ элегантен, потому что вы на самом деле не выполняете арифметические операции с плавающей запятой или подписываете функции http://stackoverflow.com/questions/1986152/why-doesnt-python-have-a-sign-function – Elmex80s
@ Elmex80s, спасибо. Для «этого ответа», о котором вы говорите? –