找回密码
 立即注册
doubleletpowerOfTen小数 | 软件设计/软件工程 2022-05-04 290 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
我试图在 swift 中分离 double 的小数和整数部分。我尝试了很多方法,但都有同样的问题。 . .
  1. let x:Double = 1234.5678
  2. let n1:Double = x % 1.0           // n1 = 0.567800000000034
  3. let n2:Double = x - 1234.0        // same result
  4. let n3:Double = modf(x, &integer) // same result
复制代码

有没有办法在不转换为字符串的情况下获得 0.5678 而不是 0.5678000000034?

回答
您可以将其四舍五入到多个小数位,而不是将其转换为字符串,如下所示:
  1. let x:Double = 1234.5678
  2. let numberOfPlaces:Double = 4.0
  3. let powerOfTen:Double = pow(10.0, numberOfPlaces)
  4. let targetedDecimalPlaces:Double = round((x % 1.0) * powerOfTen) / powerOfTen
复制代码






上一篇:无法为返回引用的闭包推断正确的生命周期
下一篇:使用 Javascript 的 JSON 到 XML