Coding/Python Matlab
파이썬 round() 함수 문제점
smores
2023. 1. 21. 15:38
round()는 반올림을 의미함. 당연히 round(1.5) 면 2 가 되어야... Matlab 등에서는 잘 작동한다. 그런데...
검색을 해 보니 python 3 에서부터 있는 문제라 함. 심지어 3.10 에서도 같은 문제 발생. -_-;;
https://medium.com/thefloatingpoint/pythons-round-function-doesn-t-do-what-you-think-71765cfa86a8
해결책은 다음과 같은 함수를 만들어 사용해야...
# python 3 rounding error solution
def normal_round(num, ndigits=0):
"""
Rounds a float to the specified number of decimal places.
num: the value to round
ndigits: the number of digits to round to
"""
if ndigits == 0:
return int(num + 0.5)
else:
digit_value = 10 ** ndigits
return int(num * digit_value + 0.5) / digit_value