숫자가 양수인지 음수인지 테스트하고 싶습니다. 특히 0 인 경우에도 테스트하고 싶습니다. IEEE-754는 -0.0
을 허용하며, 파이썬으로 구현됩니다.파이썬에서 음수 0을 테스트하려면 어떻게해야합니까?
유일한 해결 방법 I이었다 찾을 수 :
def test_sign(x):
return math.copysign(1, x) > 0
어쩌면을 (아마 실행하는 데 시간이 더 걸립니다) :
이def test_sign(x):
math.atan2(x, -1)
나는 보통의 도서관 어디에서나 전용 기능을 찾을 수 없습니다, 한 나는 간과 해? (이 관련이었다 왜)
이 더 이상 내 현재 계획이 아니라, 질문을 할 때 내가 인수가 양 또는 음의 여부에 따라 함수를 오버로드 시도 :
편집
. 사용자가 음수 0을 전달할 수있게하면 0 값 입력에 대한 의미가 모호해질 수 있습니다. 그리고 나는 이것이 다른 유스 케이스에서도 일반적으로 관심이있을 것으로 생각한다.
중복 가능성 (http://stackoverflow.com/questions/4083401/negative-zero-in-python) – Abhijit
완전히 I 추측 없음. @quazgar는 서명을 테스트하는 방법을 묻는 것이지 그것에 관한 문제는 아닙니다. –
-0을 음수로 취급해서는 안되며, 몇 가지 설명을 보려면 [here] (https://en.wikipedia.org/wiki/Signed_zero) 또는 다음 참조를 참조하십시오. [IEEE 754-1985] (http : // www. validlab.com/754R/standards/754.pdf) 및 [모든 컴퓨터 과학자가 부동 소수점 산술에 대해 알아야 할 사항] (http://www.validlab.com/goldberg/paper.pdf)을 참조하십시오. –