Learn Courses My Dashboard

Solution to Lesson 9 Challenge gives errors

The solution for Challenge 9 gives error “Cannot convert value of type ‘Int’ to expected argument type ‘Double’”

struct TaxCalculator {

var tax = 0.15

func totalWithTax(_ subtotal:Double) -> Double {
    return subtotal * (1 + tax)
}

}

struct BillSplitter {

func splitBy(subtotal:Double, numPeople:Int) -> Double {
    
    let taxCalc = TaxCalculator()
    let totalWithTax = taxCalc.totalWithTax(subtotal)
    
    return totalWithTax/numPeople
}

}

let split = BillSplitter()
print(split.splitBy(subtotal: 120, numPeople: 5))

Wrap your numPeople with Double() like this:

func splitBy(subtotal:Double, numPeople:Int) -> Double {
    
    let taxCalc = TaxCalculator()
    let totalWithTax = taxCalc.totalWithTax(subtotal)
    
    return totalWithTax / Double(numPeople)
}
1 Like

Hello, I am expirencing the same issue as nadinenel.

When I wrap numPeople with Double(), I received a new error "Cannot convert value of type’(Double) → Double’ to expected argument type “Double”

My Code: *** shows where error message is given***
struct TaxCalculator {
var tax = 0.15
func totalWithTax(billtotal:Double) → Double {
return billtotal * (1 + tax)
}
}

struct BillSplitter {

func splitBy(billtotal:Double, numPeople:Int) -> Double {

    let taxCal = TaxCalculator()
    let totalWithTax = taxCal.totalWithTax(billtotal: )
    
    return totalWithTax / Double(numPeople) ***this is where the error message populates***
}

}
let split = BillSplitter()
print(split.splitBy(billtotal: 120, numPeople: 5))

Disregard, found solution. Changed: let totalWithTax = taxCal.totalWithTax(billtotal: )
to: let totalWithTax = taxCal.totalWithTax(billtotal: billtotal)

    Works fine now.

Thank you so much for sharing the solution! That is awesome. I had changed it by putting Double instead of Int but knew that was not a good solution because the number of people should only be able to be a whole number. However, the solution in DropBox should be fixed as well. I would not have thought of what you did since I am brand new to this.

1 Like