부동 소수점 값을 특정 소수 자릿수로 자르는 방법
Python에서는 부동 소수점에서 숫자를 제거하여 고정된 소수 자릿수를 얻을 수 있습니다. 소수점 이하 자릿수. 다음 예를 고려하십시오.
1.923328437452 → 1.923
float를 소수점 세 자리까지 자르면 원하는 출력이 1.923이 됩니다.
해결책
함수 아래에서는 이 작업을 수행합니다.
def truncate(f, n): '''Truncates/pads a float f to n decimal places without rounding''' s = '{}'.format(f) if 'e' in s or 'E' in s: return '{0:.{1}f}'.format(f, n) i, p, d = s.partition('.') return '.'.join([i, (d+'0'*n)[:n]])
설명
이 함수는 부동 소수점을 문자열 표현으로 변환하여 정수 부분, 소수점의 세 부분으로 나눕니다. , 그리고 분수 부분. 그런 다음 지정된 소수 자릿수까지 소수 부분을 0으로 채워 초과 자릿수가 잘리도록 합니다.
과학적 표기법 처리
이 함수는 다음을 확인합니다. 부동소수점은 과학 표기법(e 또는 E)으로 표시되며 지수를 보존하기 위해 다른 형식 함수를 사용합니다.
이전 Python 버전
2.7 이전 Python 버전의 경우 , 부동 소수점을 자를 수는 있지만 부동 소수점 형식 지정 메커니즘의 제한으로 인해 결과가 정확하지 않을 수 있습니다. 가능한 해결 방법은 자르기 전에 float를 더 높은 정밀도로 반올림하는 것입니다.
def truncate(f, n): '''Truncates/pads a float f to n decimal places without rounding''' s = '%.12f' % f i, p, d = s.partition('.') return '.'.join([i, (d+'0'*n)[:n]])
위 내용은 반올림하지 않고 Python에서 부동 소수점 값을 특정 소수 자릿수로 자르는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!