파이썬은 지정된 숫자로 소수를 유지합니다 [5 가지 방법]

1 %.2f' %[변수] [반올림]

print()가 출력되는 곳에서 사용하거나 새로운 변수에 할당하여 출력할 수 있습니다.

# 四舍五入方法
a = 2.345566
print('%.4f'% a)
# 2.3456
print('%.3f'% a)
# 2.346
print('%.2f'% a)
# 2.35

# 赋值给新的变量
c = '%.2f'% a
print(c)
# 2.35

2 형식 기능 [반올림]

print()가 출력되는 곳에서 사용하거나 새로운 변수에 할당하여 출력할 수 있습니다.

# 四舍五入方法
a = 2.345566
print(format(a, '.4f'))
# 2.3456
print(format(a, '.3f'))
# 2.346

# 赋值给新的变量
c = format(a, '.4f')
print(c)
# 2.3456

3 직접 자르기 [반올림 없음]

3.1 먼저 지정된 배수를 확대한 다음 반올림한 다음 지정된 배수로 나눕니다.

1 소수점 세 자리 예약: 먼저 ×100, 그 다음 int, 그 다음 ÷100

a = 2.345566
c = int(a * 100) / 100
print(c)
# 2.34

2 소수점 이하 세 자리 예약: 먼저 ×1000, 그 다음 int, 그 다음 ÷1000

a = 2.345566
c = int(a * 1000) / 1000
print(c)
# 2.345

3 소수점 네 자리 유지: 먼저 ×10000, int, ÷10000

a = 2.345566
c = int(a * 10000) / 10000
print(c)
# 2.3455

3.2 문자열 가로채기 위해 문자열로 변환하고 소수점 이하 지정된 자리수 가로채기 [반올림 없이] [권장하지 않고 약간 번거로움]

a = 2.345566
# 进行分割
a_0 = str(a).split('.')[0]
a_1 = str(a).split('.')[1]
# 截取小数点后的
a_point = a_1[0:2] # 截取2位
# 字符串连接
a_new = a_0 + '.' + a_point
# 将string类型转换为float类型
a_new_number = float(a_new)

print(a_new_number)
# 2.34

4 round() 함수 [반올림은 정확하지만 소수점 이하 자릿수는 동일하지 않음]

round(숫자, ndigits=없음)은
소수점 이하 ndigits 정밀도로 반올림한 숫자를 반환합니다. ndigits가 생략되거나 None이면 입력에 가장 가까운 정수를 반환합니다.
참고:
float에 대한 round()의 동작은 놀랄 수 있습니다. 예를 들어 round(2.675, 2)는 예상되는 2.68 대신 2.67을 제공합니다. 이것은 버그가 아닙니다. 대부분의 십진수를 부동 소수점 값으로 정확하게 표현할 수 없기 때문입니다.

여기에 이미지 설명 삽입

5 Numpy 배열 np.set_printoptions [반올림]

인쇄용으로만 사용할 수 있으며 할당할 수 없습니다.

np.set_printoptions(precision=3, suppress=True, formatter={})
precision: 소수 자릿수 몇 개 유지, 나중에 0을 추가하지 않음
supress: 매우 큰/작은 숫자에 과학적 표기법을 사용하지 않음(True)
formatter: 강제 서식 지정, 나중에 0을 추가함

import numpy as np
a = np.random.random(3)
print('before set precision: \n',a)
 
np.set_printoptions(precision=3, suppress=True)
print('after set precision: \n',a)
 
np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print('after set formatter: \n',a)

# before set options:
# [ 0.05856348 0.5400039 0.70000603]
# after set precision:
# [ 0.059 0.54 0.7]
# after set formatter:【强制补0】
# [ 0.059 0.540 0.700]

6 요약

1, 2, 4번째 방법은 반올림을 할 수 있으며 변수에 값을 할당할 수 있고,
세 번째 방법은 반올림을 할 수 없지만 변수에 값을 할당할 수 있으며,
다섯 번째 방법은 반올림은 할 수 있지만 값을 할당할 수는 없습니다.


학습 링크:

추천

출처blog.csdn.net/weixin_45913084/article/details/130472886