다음 예는 부동 소수 점수의 사용에 관하여 함정 하이라이트 부동 소수점 값이다일정 일정 시간
failed to schedule at 1.3
I가 년후 :
available_again = 0
for i in range(0,15):
time = 0.1*i
if time < available_again:
print("failed to schedule at " + str(time))
available_again = time + 0.1
이 코드는 다음과 같은 출력 그러나 나는 왜 그것이 발생하는지 이해하지만이 오류를 기대하지 않는다. 이 문제를 해결하기 위해 어떤 옵션이 있습니까? 내 코드에서
한 수정 프로그램은 다음과 같습니다이 올바른 경로 인 경우 내가 궁금하네요
available_again = 0.1*(i+1)
. 내 특정 응용 프로그램은 이벤트가 발생하는 시간을 복잡한 수학 함수 (예 : sinc (2 * pi * f * t))로 지정하는 이벤트의 스케줄링과 관련됩니다. 이벤트 기간은 이벤트가 서로 겹칠 수 있으며,이 경우 이벤트를 별도의 채널로 보내야합니다. 내 코드에서
분명히 들릴지 모르겠지만, 그럴 수있는 유일한 방법은 정수를 사용하는 것입니다 (단위를 밀리 초, 마이크로 초 또는 기타로 설정하는 것). 어쩌면 복잡한 타임 스탬프를 확장하여 정수로 사용할 수 있습니다 (int (1000 * sin (2 * pi * f * t)와 같은)? – jdehesa