我想将小数(例如 0.33333)转换为百分比(预期答案 33.33%)
我用了以下
x = 0.3333
print(format(x,'.2%'))
Run Code Online (Sandbox Code Playgroud)
这确实给出了 33.33%
但是,结果是一个字符串,我希望它仍然是一个数字(以 % 格式),以便能够对其执行数学运算(例如format(x,'.2%')*2给出 66.66%
但这会引发异常,因为 33.33% 是一个字符串
一个想法是创建一个自定义数据类型,我将其称为Percent,它继承了 的所有内容float,但是当您想将其用作字符串时,它会显示 a%并将数字乘以 100。
class Percent(float):
def __str__(self):
return '{:.2%}'.format(self)
x = Percent(0.3333)
print(x)
# 33.33%
Run Code Online (Sandbox Code Playgroud)
如果您想以您的格式表示环境中的值(如 jupyter 笔记本),您可以将名称相同的方法添加__repr__到 Percent Class:
def __repr__(self):
return '{:.2%}'.format(self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20411 次 |
| 最近记录: |