Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1888878
  • 博文数量: 2460
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 24729
  • 用 户 组: 普通用户
  • 注册时间: 2020-11-26 14:30
个人简介

更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号

文章分类

全部博文(2460)

文章存档

2024年(310)

2023年(643)

2022年(693)

2021年(734)

2020年(80)

我的朋友

分类: Python/Ruby

2023-05-04 16:53:33

  在Python中,保留两位小数是我们经常会碰到的问题,也是比较常见的需求之一。那么Python中如何保留两位小数?Python保留两位小数的方法有很多种,具体请看下文。

  1、使用字符串格式化

  大部分语言都可以使用字符串格式化的方法来实现保留两位小数,Python也不例外。

  a = 12.345

  print("%.2f" % a) #%代表格式化输出,.2代表小数点后保留两位,f代表数据类型是浮点型

  2、使用round内置函数

  Python内置了一个名为round的函数,这个函数可以用来对数据进行格式化。

  a = 12.345

  a1 = round(a,2) #将a通过round函数处理后赋值给a1,传入的2代表保留两位小数

  print(a1)

  3、使用decimal模块

  类似于Java,Python也专门提供了一个decimal模块用于精确运算,它也可以进行数据的格式化输出。

  from decimal import Decimal

  a = 12.345

  Decimal(a).quantize(Decimal("0.00")) # 使用默认的进位方式(同round)"0.00"表示保留小数点后两位

  注意:Python的round采用的进位方式比较特殊,有点类似于四舍五入,但准确的来说应该叫四舍六入五成双。

  以上就是常规的保留两位小数的方法,接下来介绍两种非常规的方法。

  4、使用序列切片

  原理很简单,只要找到小数点,然后进行切片即可。

  a = 12.345

  str(a).split('.')[0] + '.' + str(a).split('.')[1][:2] #使用序列切片的方式,切出小数点前的数据,还有小数点后两位的数据,然后进行拼装

  5、使用re模块

  类似于切片,不过这次使用正则匹配来定位小数点位置。

  import re

  a = 12.345

  re.findall(r"\d{1,}?\.\d{2}", str(a)) #使用正则匹配,将符合规则字符串片段取出

阅读(306) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~