从浮点数转换为百分比

时间:2019-06-01 21:49:01

标签: python format

我想将十进制数字(例如0.33333)转换为百分比(预期答案为33.33%)

我使用了以下

x = 0.3333

print(format(x,'.2%'))

这的确是33.33%

但是,结果是一个字符串,我希望它仍然是一个数字(以%格式表示),以便能够对其执行数学运算(例如format(x,'.2%')*2给出66.66%

但这会引发异常,因为33.33%是字符串

3 个答案:

答案 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 作为浮点变量