kasprdev
kasprdev

Reputation: 811

Swift returning 0 on division

I'm trying to do basic division and it always returns 0 as an answer.

let mathStuff = Double((stepCount / Level.expRequired())) * 100
print ("\(totalSteps) / \(Level.expRequired()) * 100 = \(mathStuff)")

My print returns

2117 / 2500 * 100 = 0.0

I've tried using NSDecimal instead of a Double and have also tried not using Double or NSDecimal and having it just do the math, which comes back as 0 instead of 0.0.

I'm really confused on what I'm doing wrong here, this seems like basic math and I'm not sure why I'm always given 0 as an answer.

Upvotes: 1

Views: 395

Answers (1)

QuirkyBit
QuirkyBit

Reputation: 762

Your problem probably lies here: 2117 /2500, both 2500 and 2117 are Ints.

If they were Double, then it would work: 2117.0 /2500.0 ==> produces non-zero division

Try casting those variables to double first, and you don't need to cast the result itself: Double(stepCount) /Double(Level.expRequired()))*100

In fact, I believe only one needs to be cast: Double(stepCount)/Level.expRequired())*100

Upvotes: 3

Related Questions