This week I got tripped-up by what I reckon is a rookie mistake.
Let's say we're building a clock face with just the hours. We'd use a maximum of 12 to represent each hour. 3 would point to 3 on the clock face, 7 to 7, etc
I was trying to work out how many degrees of a circular gauge view to fill when given two Integers
representing its current and maximum possible values.
What I did wrong
let current: Int = 6 // where the hour hand should point to...
let max: Int = 12
let degreesToFill: Double = Double(current / max) * 360.0
How I fixed it:
let degreesToFill: Double = (Double(current) / Double(max)) * 360.0
The mistake:
It seems that attempting to cast the result of the initial division returns 0 rather than the result as a Double
, as expected.
The way which worked was to cast each Integer
separately, then divide them before multiplying by the maximum number of degrees in the circle.
Top comments (0)