Это немного зависит от вашей реализации. Примерно так должно работать во всех случаях:
total_price = 123.4567
stripe_price = str(int(round(total_price, 2) * 100))
Это производит:
'12346'
Сначала округляется до двух десятичных знаков, умножается на 100, приводится к целому числу, а затем к строке. В зависимости от вашей интеграции Stripe, вы можете пропустить приведение к целому числу и строке.
Пропуск приведения к int приведет к такому результату:
>> str(round(total_price, 2) * 100)
>> '12346.00'
Это все равно будет работать, поскольку Stripe удаляет все после десятичной дроби, но, возможно, вам не нужны эти конечные нули.
Если вы хотите преобразовать числа внутри шаблона, тогда можно использовать пользовательский шаблонный фильтр , как уже отмечали другие.
@register.filter(name='stripeconversion')
def stripe_value(total_price):
return str(int(round(total_price, 2) * 100))
и используйте его в шаблоне:
{{ total_price|stripeconversion }}