从浮动转换为百分比

2024-04-19 13:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个十进制数(比如0.33333)转换成百分比(预期答案是33.33%)

我用了以下方法

x = 0.3333

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

相当于33.33%

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

但这引发了一个异常,因为33.33%是字符串


Tags: 方法字符串答案format格式数字数学百分比
1条回答
网友
1楼 · 发布于 2024-04-19 13:28:20

一个想法是创建一个自定义的数据类型,我将它命名为Percent,它继承了float的所有内容,但是当你想把它作为一个字符串使用时,它会显示一个%,并将数字乘以100。在

class Percent(int):
    def __str__(self):
        return '{:.2%}'.format(self)
x = Percent(0.3333)
print(x)
# 33.33%

如果您想以您的格式在envoirment(如jupyter notebook)中重新表示值,可以将名称为__repr__的相同方法添加到Percent类:

^{pr2}$

相关问题 更多 >