2016-12-10 9 views
-1

Как добавить 2.50 к стоимости?Добавление числа с 2 десятичными знаками в переменную (2.50)

Прямо сейчас это просто выводит его как 2.

cost = 0.00 

r = open("toppings.txt") 

bases = ["small","medium","large"] 

toppings = ["Pepperoni","Chicken","Cajun Chicken","Mushrooms", 
      "Red Onions","Sweetcorn","Ham","Cheese","Spicy Minced Beef", 
      "Anchovies","Tuna","Peppers","Jalapenos","Green Chillies"] #0-13 

def small(): 

    current = cost + 2.50 

    print("Your current total cost is " + "£" + str(int(current))) 
+0

удалить int (текущий) и использовать str (текущий) напрямую. –

+5

Ну просто удалите int() – DZDomi

+0

'print (« Ваша текущая общая стоимость составляет £% 2f »% current)' – Bodhi94

ответ

3

Есть две проблемы:

  • Вы теряете знаков после запятой, как только вы преобразовать его в int в int(current).
  • Если вы всегда хотите два десятичных знака, вам нужно использовать какое-то форматирование строк.

Я бы посоветовал просто использовать str.format с «2» знаков после запятой (здесь подкрепленный .2f):

'Your current total cost is £ {:.2f} '.format(current) 

Если вы работаете с «деньги» -как переменных следует использовать decimal.Decimal вместо поплавков, так что вам не нужно заботиться о «неточности» чисел с плавающей запятой.

2

Вы преобразуете поплавок количество тока счета в целое в этой строке

print("Your current total cost is " + "£" + str(int(current))) 

Вместо этого используйте эту команду, чтобы напечатать Ваш текущий счет количество.

print("Your current total cost is " + "£" + "{0:.2f}".format(round(current,2))) 

выход

Your current total cost is £5.50 
0

int превращает число в целое число. Например, int(2.1) = 2

Ваша последняя строка должна иметь только str(current).

print("Your current total cost is " + "£" + str(current))