Преобразование из числа с плавающей запятой в процент - PullRequest
0 голосов
/ 02 июня 2019

Я хотел бы преобразовать десятичное число (скажем, 0,33333) в процент (ожидаемый ответ 33,33%)

Я использовал следующее

x = 0.3333

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

, что дает 33,33%

Однако, результатом является строка, я хотел бы, чтобы она все еще была числом (в формате%), чтобы иметь возможность выполнять математические операции над ним (например, format(x,'.2%')*2, чтобы получить 66,66%

Но это выдает исключение, поскольку 33,33% является строкой

1 Ответ

1 голос
/ 02 июня 2019

Идея состоит в том, чтобы создать собственный тип данных, я назову его 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__ к классу процентов:

def __repr__(self):
    return '{:.2%}'.format(self)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...