그것은 정확히 가까운 1> 1 만입니다 :python 비교 연산자가 작동하지 않는 경우, float (1)> float (1)이 True로 평가되면 무엇이 누락 되었습니까?
내가 두 타임 스탬프를 비교하고 if time > timestamp
이 True
로 평가 무언가를하고 싶다. PDB에서 볼 수 있듯이 두 변수는, 그들에 같은 float
이
(Pdb) print time
1396836917.98
(Pdb) print last_timestamp
1396836917.98
(Pdb) if time > last_timestamp: print 'wtf'
wtf
나는이 False
으로 평가하는 기대, float
문제가 될 것 같습니다 :
(Pdb) if float(time) > float(last_timestamp): print 'wtf'
wtf
int
비교가 잘 작동
(Pdb) if int(time) > int(last_timestamp): print 'wtf'
그래서 사용 가능한 비트의 정밀도에 문제가있을 것으로 예상됩니다. 지금 내 주변에 수
(Pdb) if float(time)*100 > float(last_timestamp)*100: print 'wtf'
wtf
하지만 남아있는 소수 자릿수가없는 경우 여전히 True
로 평가 ..
작품을 대표들
if int(time*100) > int(last_timestamp*100): print 'wtf'
하지만 난 정말 좋겠 무슨 일이 일어나고 있는지 이해하고 float
과 함께 >
연산자를 올바르게 사용하는 방법을 알고 싶습니다.
'파이썬 2.7의 결과를 제공
:
는 SQL 위해 당신은 같은 일을 설명 할 수 있습니다.5+ (기본값, Feb 27 2014, 19:37:08) linux2의 [GCC 4.8.1] 자세한 내용은 "help", "copyright", "credits"또는 "license"를 입력하십시오. repr()'shot을 사용했지만 타임 스탬프를 '문자열'로 모으므로 차이가 없어야합니다. – gletscher'repr'을 시도하십시오. 시간 소인이 어디서 왔는지는 중요하지 않습니다. –