이것은 매우 간단한 코드처럼 보입니다. 그러나 어떤 이유로 그것이 작동하지 않습니다. 특정 시간에 값을 출력해야하지만 if 문은 평가하지 않는 것 같습니다. 다음은 내가하려는 일의 기본 버전입니다.If 문이 작동하지 않습니다 (파이썬)
dt=.1
while t<=10:
if t==5:
print('yes')
t+=.1
저는 문자 그대로이 코드를 사용해 보았지만 모든 시간 단계마다 문자를 인쇄했지만 '예'라고 인쇄하지는 않습니다. 내 코드에 다른 코드가있는 경우 (예 :
if 10<=t<60:
do stuff
) 이러한 if 문은 완벽하게 실행됩니다. 나는 그것을 t==5.0
과 t==float(5)
을 필요로하는 경우를 대비하여 시도했지만 그 중 하나는 작동하지 않았다. 이것은 나를 미친 듯이 몰아 넣습니다. 누군가 나를 기쁘게 해 주면 좋을 것 같습니다. 나는 Ubuntu 12.4의 Spyder에서 이것을 실행하고 있는데, import sitecustomize
이 실패했다는 메시지를 받았습니다. 이것과 관련이 있을까요? 나는 그 메시지로 잠시 동안 코드를 실행 해 왔으며 이전에는 아무런 문제도 일으키지 않았다. 편집
내가 당신 t
떠있는 점과는 100 %의 정확도로 표현되어 있기 때문입니다 도움
[포인트 부정확 부동 (http://docs.python.org/2/tutorial/floatingpoint.html) – jamylak
HTTP :/
그래서 정밀 제어 당신이 찾고있는 아마 /docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html 모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항 – Patashu