print(int(math.ceil(24/10)))
저를주는 '3'예상대로.
Active Python 2.5가 설치된 Windows Server에서 '2'를 표시합니다.
여기의 문제는 무엇이며 어떻게 해결할 수 있습니까?
여기에 내 원래의 코드입니다 :
number_of_pages = int(math.ceil(number_of_rows/number_of_rows_per_page))
감사합니다,
베리
print(int(math.ceil(24/10)))
저를주는 '3'예상대로.
Active Python 2.5가 설치된 Windows Server에서 '2'를 표시합니다.
여기의 문제는 무엇이며 어떻게 해결할 수 있습니까?
여기에 내 원래의 코드입니다 :
number_of_pages = int(math.ceil(number_of_rows/number_of_rows_per_page))
감사합니다,
베리
파이썬 2.X는 disivion을 절단 사용하므로 24/10
에 대한 답은 2 ceil
은 여전히 2 2입니다
해결 방법은 피연산자 중 하나를 부동 상태로 변환하는 것입니다.
print(int(math.ceil(24.0/10)))
다음을 시도해보십시오. print(int(math.ceil(24/10.0)))
, 올바른 값을 반환합니다. 지적했듯이, Python 2.5에서 표현식 24/10
은 2
으로 계산됩니다. 이는 정수 나누기를 수행하기 때문입니다.
당신이 알아야 할 모든 것은 여기 http://www.python.org/dev/peps/pep-0238/입니다.
프로그래밍 언어의 빠른 정독은 정수로 나눈 그 정수
정수 반환 발견
부동 소수점 (별표 정수를 리턴하는 다른 신택스가 존재한다는 것을 의미한다)
뭔가
파이썬의 선택 분할 연산자의 의미는 당시 quite controversial이었습니다. 정수를 반환하는 것은 종종 프로그래머와 수학자를 시작하는 것을 놀라게합니다. 그러나 숙련 된 프로그래머는 두 개의 정수를 나눌 때 부동 소수점을 반환 할 수 있다고 생각할 때 같은 방식으로 느껴지기도합니다.
저는이 비율을 사용하여 수레를 저장하는 아이디어를 좋아합니다. 파이썬으로 고려 되었습니까? – Baz
'fractions' 모듈에'Fraction'이 있습니다. 하지만 거의 절대 필요하지 않습니다. 더 친숙한 부동 소수점 역할을하는'decimal' 모듈에'Decimal '도 있습니다. 이러한 데이터 유형은 본질적으로 정수 및 부동 소수점보다 느립니다. 그들은 또한 다루기 힘들다. 필요에 따라 사용하십시오. –
저는 이것이 파이썬에서는 버그가 아니라 낮은 레벨에 있다고 생각합니다. – bigblind