Pythonは指定された桁の小数を保持します[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 小数点以下 3 桁を予約します: 最初に ×100、次に int、次に ÷100

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

2 小数点以下 3 桁を予約します: 最初に ×1000、次に int、次に ÷1000

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

3 小数点以下 4 桁を保持します: 最初に ×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

4round() 関数 [正確な丸めが行われますが、小数点以下の桁数が同じであることは保証できません]

round(number, ndigitals=None) は、
小数点以下を n 桁の精度に四捨五入した数値を返します。ndigitals が省略されるか None の場合、入力に最も近い整数が返されます。
注:
float のround() の動作は驚くべきものになる可能性があります。たとえば、round(2.675, 2) では、予想される 2.68 ではなく 2.67 が返されます。これはバグではありません。ほとんどの小数は浮動小数点値として正確に表現できないためです。

ここに画像の説明を挿入

5 Numpy 配列 np.set_printoptions [四捨五入]

印刷のみに使用でき、割り当てはできません

np.set_printoptions(precision=3,抑制=True,フォーマッタ={})
精度: 小数点以下の桁数を保持し、後で 0 を追加しません
抑制: 非常に大きい/小さい数値に科学表記法を使用しません (True)
フォーマッタ: 書式設定を強制し、後で 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番目のメソッドは四捨五入ができ、変数に値を代入できる
3番目のメソッドは四捨五入ができず、変数に値を代入できる
5番目のメソッドは四捨五入はできるが、値を代入できない


学習リンク:

おすすめ

転載: blog.csdn.net/weixin_45913084/article/details/130472886