Python保留指定位数小数的5种方法总结

 更新时间:2023年08月31日 10:37:15   作者:Threetiff  
很多小伙伴在学习python的时候可能会遇到对数据进行格式化输出的需求,其中最常见的需求为保留几位小数,这篇文章主要给大家介绍了关于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 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

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(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]

6 总结

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

学习链接:

到此这篇关于Python保留指定位数小数的5种方法的文章就介绍到这了,更多相关Python保留指定位数小数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pandas groupby分组对象的组内排序解决方案

    pandas groupby分组对象的组内排序解决方案

    这篇文章主要介绍了pandas groupby分组对象的组内排序解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python如何实现排序,并标上序号

    python如何实现排序,并标上序号

    这篇文章主要介绍了python如何实现排序,并标上序号,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • NumPy实现从已有的数组创建数组

    NumPy实现从已有的数组创建数组

    本文介绍了NumPy中如何从已有的数组创建数组,包括使用numpy.asarray,numpy.frombuffer和numpy.fromiter方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • 详解python opencv图像混合算术运算

    详解python opencv图像混合算术运算

    这篇文章主要介绍了python opencv图像混合算术运算的相关知识,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Python OpenCV实现3种滤镜效果实例

    Python OpenCV实现3种滤镜效果实例

    opencv是一个很强大的库,支持多个编程语言,下面这篇文章主要给大家介绍了关于Python OpenCV实现3种滤镜效果的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Pygame库200行代码实现简易飞机大战

    Pygame库200行代码实现简易飞机大战

    本文主要介绍了Pygame库200行代码实现简易飞机大战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python中time模块和datetime模块的用法示例

    Python中time模块和datetime模块的用法示例

    这篇文章主要介绍了Python中time模块和datetime模块的用法示例,主要演示了一些时间日期的打印和计算,需要的朋友可以参考下
    2016-02-02
  • Python爬虫实战案例之爬取喜马拉雅音频数据详解

    Python爬虫实战案例之爬取喜马拉雅音频数据详解

    这篇文章主要介绍了Python爬虫实战案例之取喜马拉雅音频数据详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • python中内置函数ord()返回字符串的ASCII数值实例详解

    python中内置函数ord()返回字符串的ASCII数值实例详解

    ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,这篇文章主要介绍了python 中内置函数ord()返回字符串的ASCII数值,需要的朋友可以参考下
    2022-07-07
  • PyTorch 迁移学习实战

    PyTorch 迁移学习实战

    本文主要介绍了PyTorch 迁移学习实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论