#百分比转换位小数
# -*- coding: utf-8 -*-
s = '20%' # 默认要转换的百分比是字符串
aa = float(s.strip('%')) # 去掉s 字符串中的 %
bb = aa/100.0 #运行环境是Python2.7 其中Python2.X 与 python 3X中的除法是有区别
print bb
# 输出结果是 0.2
# 小数转换位百分比
#方法一
a = 0.3214323
bb = "%.2f%%" % (a * 100)
print bb
# 输出结果是32.14%
#方法二
a = 0.3214323
b = str(a*100) + '%'
print b
# 输出结果是32.14323%
# 如果想保留小数点后两位
c = str(a)[:4]+ '%'
print c
# 输出结果是0.32%
python中格式化字符 %% ,可以输出%,如下:
>>> print '%.2f%%' % (2.322)
2.32%
>>> print '%d%%' % 23
23%
比如将 0.1234 转化为 12.34% 的形式:
rate = 0.1234
print('%.2f%%' % (rate * 100))
第一个百分号和 .2f 相连,表示浮点数类型保留小数点后两位格式化输出;
然后的两个连续的%%,则最终会输出一个%号出来,有对%进行转义的含义;
将小数(数值)转化为字符串,并赋给其他变量:
rate = .1
res = format(res, '.0%')
# res == '10%'
a, b = 4.56, 5.78
print('a: {0:.1f}, b:{1:.2f}'.format(a, b))
# a: 4.6, b:5.78,第一个数小数点后保留一位,第二个数则保留两个小数位;
注,倘若使用 {*} 的形式进行编号时,必须以 0 开始编号,如果{} 内部什么也不写,则默认编号为 0,{} 的形式自然用在待格式化的对象只有一个元素时。
%f 控制精度
>>> print('value: %s' % (5/3))
value: 1.6666666666666667
>>> print('value: %.3f' %(5/3))
value: 1.667
>>> print('%6.2f'%10.3)
10.30
# 注意10.30之前有一个空格
# 6.2f,6表示包含小数点一共六位,2表示小数点后共两位
>>> print('%06.2f'%10.3)
010.30
# 不足的由零来填补
Python 输出百分比的两种方式
方式1:直接使用参数格式化:{:.2%}
{:.2%}: 显示小数点后2位
显示小数点后2位:
>>> print('percent: {:.2%}'.format(42/50))
percent: 84.00%
不显示小数位:{:.0%},即,将2改为0:
>>> print('percent: {:.0%}'.format(42/50))
percent: 84%
方式2:格式化为float,然后处理成%格式: {:.2f}%
与方式1的区别是:
(1) 需要对42/50乘以 100 。
(2) 方式2的%在{ }外边,方式1的%在{ }里边。
显示小数点后2位:
>>> print('percent: {:.2f}%'.format(42/50*100))
percent: 84.00%
显示小数点后1位:
>>> print('percent: {:.1f}%'.format(42/50*100))
percent: 84.0%
只显示整数位:
>>> print('percent: {:.0f}%'.format(42/50*100))
percent: 84%
说明
{ } 的意思是对应format()的一个参数,按默认顺序对应,参数序号从0开始,
{0}对应format()的第一个参数,{1}对应第二个参数。例如:
默认顺序:
>>> print('percent1: {:.2%}, percent2: {:.1%}'.format(42/50, 42/100))
percent1: 84.00%, percent2: 42.0%
指定顺序:
{1:.1%}对应第2个参数; {0:.1%}对应第1个参数。
>>> print('percent2: {1:.1%}, percent1: {0:.1%}'.format(42/50, 42/100))
percent2: 42.0%, percent1: 84.0%