7. You Deserved It! (correct output but...)


#1
  1. Interface sais "(...) false". What is false? As you can see I create an extra-line for check the total before and after the discount. And it is 20%...;
  2. What the pluck is cashRegister.total**.toFixed(2)** ? What does it does? How is working? WHY is working? (i do not see it defined anywhere)

(my code is under the picture)

function StaffMember(name,discountPercent)
{
this.name = name;
this.discountPercent = discountPercent;
}
var sally = new StaffMember("Sally",5);
var bob = new StaffMember("Bob",10);
// Create yourself again as 'me' with a staff discount of 20%
var me = new StaffMember("me",20);
var cashRegister =
{
total:0,
lastTransactionAmount: 0,
add: function(itemCost)
{
this.total += (itemCost || 0);
this.lastTransactionAmount = itemCost;
},
scan: function(item,quantity)
{
switch (item)
{
case "eggs": this.add(0.98 * quantity); break;
case "milk": this.add(1.23 * quantity); break;
case "magazine": this.add(4.99 * quantity); break;
case "chocolate": this.add(0.45 * quantity); break;
}
return true;
},
voidLastTransaction : function()
{
this.total -= this.lastTransactionAmount;
this.lastTransactionAmount = 0;
},
// Create a new method applyStaffDiscount here
applyStaffDiscount: function(employee)
{
this.total = this.total*(100 - employee.discountPercent) / 100;
}
};
cashRegister.scan('eggs',1);
cashRegister.scan('milk',1);
cashRegister.scan('magazine',3);
// Apply your staff discount by passing the 'me' object
// to applyStaffDiscount
console.log('Your full bill is '+cashRegister.total.toFixed(2));
cashRegister.applyStaffDiscount(me);
// Show the total bill
console.log('Your bill is '+cashRegister.total.toFixed(2));


#2
  1. for no 2 i've got it.
    i removed, see the result, wanted to regulate the output to 2 decimals and i understood that tofixed is the command for it...
  2. no 1 still a mystery...

FANTASTIC! i write first no 2, then no 1, but the output of this forum is changing my input... what a stupid world!


#3

i figured out no 1 too... again we deal with those guys who knows a language but not math!
they think that the only correct way to calculate a*20% is:
this.total -= this.total * (employee.discountPercent / 100)
and they check this line in particular, not the output!!! :rage: