首页 > 解决方案 > 为什么将两个小数双精度数相乘并将结果转换为字符串会导致多余的零?

问题描述

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

为什么将两个小数 Double 的乘积转换为 String 会导致结果的小数部分出现无关的零(以 1 结尾),但将小数 Double 显式转换为 String 不会?以及如何从结果中删除无关部分?

标签: swifttype-conversion

解决方案


推荐阅读