0
Some strange test case for y*(1-x)
This pice of code cart = [15, 42, 120, 9, 5, 380] discount = int(input()) total = 0 print(sum(cart)-sum(cart)*discount/100) provide different output in comparison with this one cart = [15, 42, 120, 9, 5, 380] discount = int(input()) total = 0 print(sum(cart)*(1-discount/100)) On some hidden test. Can you suggest what is the hidden test case consists of?
2 Réponses
+ 8
Иван Поздняков ,
> since the differences in result depends on how the discount is calculated, most exercises define how the final result should be rounded, but not in this case.
> the exercise is in *python fof beginners* exercise 32.2.
> the task description gives a clear hint *how* the calculation has to be done :
> Use a for loop to iterate over the list.
> Use the following formula to calculate the result of X% discount on $Y price: Y - (Y*X/100).
(my comment: this formula has to be applied on each item in the cart.)
+ 5
Floating point numbers differ in precision values...
If one result 0.45 then other may result 0.44789889 ... Better you go with first approach.