d := float64(length / pagesize)
transforms to float the result of the division. Since the division itself is integer division, it results in 4, so d = 4.0 and
math.Ceil(d) is 4.
Replace the line with
d := float64(length) / float64(pagesize)
and you'll have