52ky 发表于 2022-5-4 13:28:04

在 Swift 中获取 double 的小数部分

问题
我试图在 swift 中分离 double 的小数和整数部分。我尝试了很多方法,但都有同样的问题。 . .
let x:Double = 1234.5678
let n1:Double = x % 1.0         // n1 = 0.567800000000034
let n2:Double = x - 1234.0      // same result
let n3:Double = modf(x, &integer) // same result
有没有办法在不转换为字符串的情况下获得 0.5678 而不是 0.5678000000034?

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



页: [1]
查看完整版本: 在 Swift 中获取 double 的小数部分