我想将十进制数字(例如0.33333)转换为百分比(预期答案为33.33%)
我使用了以下
x = 0.3333
print(format(x,'.2%'))
这的确是33.33%
但是,结果是一个字符串,我希望它仍然是一个数字(以%格式表示),以便能够对其执行数学运算(例如format(x,'.2%')*2
给出66.66%
但这会引发异常,因为33.33%是字符串
答案 0 :(得分:1)
一个想法是创建一个自定义数据类型,我将其称为Percent
,它继承了float
的所有内容,但是当您要将其用作字符串时,它会显示一个{{1} },然后将数字乘以100。
%
如果要以格式表示象jupyter笔记本这样的信封中的值,可以将名称为class Percent(int):
def __str__(self):
return '{:.2%}'.format(self)
x = Percent(0.3333)
print(x)
# 33.33%
的相同方法添加到百分比类:
__repr__
答案 1 :(得分:0)
我把它写在一行上,例如:
x = 0.333
print(str(int(x*100)) + "%)
答案 2 :(得分:0)
x = 0.3333
print('{:,.2}%'.format(x)) # 打印百分比格式,保留 x 作为浮点变量