[완료]Python 작성 관련
아래는 간단한 Python 코드 인데요!! Dictionary 인 atomic 에서 Li의 값이 6.941 인데
출력 시에는 6.9409999999999998 로 출력되고 나중에 한꺼번에 value 출력시에는 다시 6.941출력되는데요
이거 왜 그러는건지 이유좀 부탁드립니다.
>>> atomic = {'H': 1.00974, 'He': 4.002602, 'Li': 6.941, 'Be':10.811}
>>> atomic['Li']
6.9409999999999998
>>> atomic['Au'] = 196.96655
>>> del atomic['He']
>>> for key, value in atomic.iteritems():
... print 'Element ' + key + ' has atomic mass ' + str(value)
...
Element H has atomic mass 1.00974
Element Li has atomic mass 6.941
Element Au has atomic mass 196.96655
Element Be has atomic mass 10.811
>>> atomic['Li']
6.9409999999999998
>>> chemicals = atomic.keys()
>>> chemicals.sort()
>>> for element in chemicals:
... print element + ' has mass ' + str(atomic[element])
...
Au has mass 196.96655
Be has mass 10.811
H has mass 1.00974
Li has mass 6.941
정상입니다.
>>> 6.941
6.9409999999999998
>>> str(6.941)
'6.941'
어차피 6.941은 이진법 부동소수점수로 정확하게 표현하는 것이 불가능하니 위의 것은 그 사실을 반영하는 것이고, 아래 것은 str으로 문자열로 변환할 때 읽기 쉬운 꼴로 보여주는 것입니다.
feanor님이 적으셨지만
feanor님이 적으셨지만 부동 소수점은 소수점에 대해 정확한 값을 가지는 것이 불가능합니다.
repr(6.941) 로 출력해보시면, 6.9409999999로 출력할겁니다.
감사합니다~~
어제부터 Python에 입문한 초보 입니다.
얼릉 Python을 하구 Django로 들어가야 되는데요...
무지 달려야 되겠네요 이런거에 계속 헤매구 있구...ㅜ_ㅜa
댓글 달기