나는이 간단한 코드와 사전 만드는거야 :수레 인쇄 - 파이썬
pixel_histogram = {}
min_value = -0.2
max_value = 0.2
interval_size = (math.fabs(min_value) + math.fabs(max_value))/bins
for i in range(bins):
key = min_value+(i*interval_size)
print key
pixel_histogram[key] = 0
print pixel_histogram
을하지만 내 인쇄로이 값을 가지고 원인 내가 '조금 놀랐어요 :
#Printing keys
-0.2
-0.16
-0.12
-0.08
-0.04
0.0
0.04
0.08
0.12
0.16
#Printing the dictionary
{0.0: 0,
-0.08000000000000002: 0,
0.15999999999999998: 0,
-0.16: 0,
0.12: 0,
-0.12000000000000001: 0,
0.08000000000000002: 0,
-0.04000000000000001: 0,
-0.2: 0,
0.03999999999999998: 0}
값이 다른 이유와 해결 방법을 알지 못했습니다. 도움이 될 것입니다. 감사합니다. .
[모든 부동 소수점 연산에 대해 알아야 할 모든 컴퓨터 과학자] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –
정확한 부동 소수점 연산을 사용해야하는 경우, decimal 클래스 (http://docs.python.org/2/library/decimal.html)를 사용해보십시오. –
두 번째 경우의 출력을 설명하지만 첫 번째 출력이 두 번째 출력과 다른 이유는 설명하지 않습니다. – delnan