Задать вопрос
@700ghz

Python: format str float — как прятать дробную часть, если она равна нулю?

Python3.4.
Необходимо формировать строку с ценой.
Если дробная часть цены равна 0, то не отображать её (дробную часть).


  1. >>> floatVal = 123.456
    >>> "Price: {:.2f}".format(floatVal)
    'Price: 123.46'



  2. >>> floatVal = 123.00
    >>> "Price: {:.2f}".format(floatVal)
    'Price: 123.00'



Дробная часть в обоих случаях отображается. А необходимо во втором случае получить строку 'Price: 123'
Какой должна быть форматная строка?

Заранее благодарю!
  • Вопрос задан
  • 1892 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
>> from decimal import Decimal
>>> quantize = Decimal('.01')
>>> print(Decimal(123.456).quantize(quantize).normalize())
123.46
>>> print(Decimal(123.00).quantize(quantize).normalize())
123
Ответ написан
@balamut108
Py
price = 1.00
print "Price: {:}".format(int(price) if int(price) == price else round(price, 2))

price = 1.23233
print "Price: {:}".format(int(price) if int(price) == price else round(price, 2))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
Цену надо хранить в виде целого числа, иначе из-за округления она может становиться недостоверной.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы