python百分数小数

1790阅读 0评论2018-11-14 chengxuyonghu
分类:系统运维

#百分比转换位小数
# -*- 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%

上一篇:python读取文本内容排序
下一篇:python列表字符串互转和反转输出