您现在的位置是:首页 > 技术教程 正文

Python保留指定位数的小数【5种方法】

admin 阅读: 2024-03-20
后台-插件-广告管理-内容页头部广告(手机)

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2 format函数【四舍五入】

可以在print()打印处使用,也可以赋值给新的变量进行输出

# 四舍五入方法 a = 2.345566 print(format(a, '.4f')) # 2.3456 print(format(a, '.3f')) # 2.346 # 赋值给新的变量 c = format(a, '.4f') print(c) # 2.3456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3 直接截断【不进行四舍五入】

3.1 先放大指定倍数,后取整,后再除以指定倍数

1 保留三位小数:先×100,后int,后÷100

a = 2.345566 c = int(a * 100) / 100 print(c) # 2.34
  • 1
  • 2
  • 3
  • 4

2 保留三位小数:先×1000,后int,后÷1000

a = 2.345566 c = int(a * 1000) / 1000 print(c) # 2.345
  • 1
  • 2
  • 3
  • 4

3 保留四位小数:先×10000,后int,后÷10000

a = 2.345566 c = int(a * 10000) / 10000 print(c) # 2.3455
  • 1
  • 2
  • 3
  • 4

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4 round()函数【精确的四舍五入,但无法保证相同的小数位数】

round(number, ndigits=None)
返回小数点后四舍五入到ndigits精度的数字。如果ndigits被省略或为None,它将返回与其输入最近的整数。
注意:
round()对于float的行为可能令人惊讶:例如,round(2.675,2)给出的是2.67,而不是预期的2.68。这不是一个错误:这是因为大多数十进制分数【decimal fractions】不能精确地表示为浮点值。

在这里插入图片描述

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

6 总结

第 1、2、4三种方法可以进行四舍五入,可以对变量赋值
第3种方法不可以进行四舍五入,可以对变量赋值
第5种方法可以进行四舍五入,但不可以赋值


学习链接:

  • Python保留指定位数的小数
  • 详解python中的round()函数
标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜