大部分语言都可以使用字符串格式化的方法来实现保留两位小数的效果,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”表示保留小数点后两位
以上就是常规的保留两位小数的方法,接下来介绍两种非常规的方法(使用字符串处理的方法,这种方法仅保留两位小数,不做四舍五入)
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))
#使用正则匹配,将符合规则(一个小数点前有很多位数字,小数点后面只有两位数字的片段)字符串片段取出
python用print进行格式化输出,有以下几种模式,代码如下:
1、打印字符串
print ("His name is %s"%("Aviad"))效果:
2、打印整数
print ("He is %d years old"%(25))效果:
3、打印浮点数
print ("His height is %f m"%(1.83))效果:
4、打印浮点数(指定保留小数点位数)
print ("His height is %.2f m"%(1.83))效果:
5、指定占位符宽度
print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))效果:
6、指定占位符宽度(左对齐)
print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))效果:
7、指定占位符(只能用0当占位符?)
print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))效果:
8、科学计数法
format(0.0015,'.2e')效果:
:2d表示:右对齐,宽度为2:6.4f表示:右对齐,宽度为6,且保留小数点后4位
使用":", 指定代表元素需要的操作。format格式化函数中,使用 {} 和 : 来代替Python2.6版本以前的 %
d表示十进制整数,f表示浮点数
.4和6.4的区别在于,后者指定了数据宽度。你如果把这句的6.4改成20.4,就会看出差别来了