나는 간단한 재귀 공식으로 주위를 연주하고 코드호기심 파이썬 행동 접근 X.0
p = 2.0
while p < 3.0:
print p
p = (6+p)**(0.5)
에서 인쇄 할 발견 된 근사 어떤 종류가있을 것입니다 물론
*snip*
...
2.99999999952
2.99999999992
2.99999999999
3.0
3.0
3.0
3.0
3.0
3.0
2.99999999999에서 3.0 사이 (및 그 전에) 그러나 실제로 여기서 일어나는 것은 무엇입니까? 내게는 부동 소수점 3.0이 3.0이 아닌 3.0으로 여러 번 연속으로 해석 될 정도로 충분히 이상하게 해석 될 것입니다.
나는 코드 단위로 잘못된 것을하고 있는가, 아니면 나의 해석이 맞습니까? 그렇다면 왜 이런 일이 일어나는 것입니까?
아. 하지만 왜 2.999 대신에 3.0으로 해석됩니까? ...? 나는이 근사값을 어떻게 처리 할 것인가? 11 자리 10 진수로 부동 소수점을 자르고 그 값이 모두 9 인 경우 3.0이라고 부르는가? – Max
@Max : 네, ~ 11 진수로 반올림하는 것 같습니다. – NPE
@Max : 12 번째 십진수가> = 5 일 때; 결국 라운딩이 작동하는 방식입니다. –