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
'Coding > Python Matlab' 카테고리의 다른 글
Pandas subplots (0) | 2023.03.29 |
---|---|
Visual Studio Code Jupyter Notebook 출력 폰트조절 (0) | 2023.01.31 |
Anaconda Virtual Environment (0) | 2023.01.13 |
Matlab - 좌우 서로 다른 Y축 스케일의 두 플롯 겹쳐서 그리기 (0) | 2022.12.20 |
Matlab - ginput() get coordinate on the plot by mouse click (0) | 2022.11.30 |