var d1 = 0.124 * 0.12456 // 0.01544544
var s1 = String(d1) // 0.015445440000000001
var d2 = 0.01544544 // 0.01544544
var s2 = String(d2) // 0.01544544
Why does converting the product of two fractional Doubles to a String result in extraneous zeroes (ending with 1) in the fractional portion of the result, but converting a fractional Double explicitly to a String does not? And how can I remove the extraneous portion from the result?