Округление числа вверх с помощью .format () - PullRequest
0 голосов
/ 21 февраля 2020

Я пишу простую программу и использую .format (), чтобы округлить число до 2 dp

 State = 0.05
 County = 0.025
 Purchase = float(input(‘amount of purchase: ‘))
 State_tax = purchase * state
 County_tax = purchase * county
 Total_tax = state_tax + county_tax
 Total = purchase + total_tax
 Print(‘amount: ‘ + ‘{:.2f}’.format(purchase))
 Print(‘state tax: ‘ + ‘{:.2f}.format(state_tax))
 Print(‘county tax: ‘ + ‘{:.2f}.format(county_tax))
 Print(‘total tax: ‘ + ‘{:.2f}.format(total_tax))
 Print(‘total sale: ‘ + ‘{:.2f}.format(total))

Чтобы проверить это, я ввел 11. Однако общая сумма не добавляет правильно до налога. Общая сумма налога составляет 0,83, но общая сумма составляет 11,82. Он не округляется с 11,825 до 11,83. Как я мог это исправить?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Поскольку вы рассчитываете сумму налога без форматирования, попробуйте этот вариант для налога, как показано в печати

total_tax = float('{:.2f}'.format(state_tax)) + float('{:.2f}'.format(county_tax))

Это исправление исправит вашу общую сумму

0 голосов
/ 21 февраля 2020

Python обычно округляется до минимального значения, если значение дроби меньше или равно 5, округляется до максимального значения, когда значение дроби выше 5.

Вы можете даже попробовать округлить число

print("amount: {}".format(round(purchase, 2)))

округлить до 2 цифр

...