在Swift中获取双精度的小数部分
我正在尝试快速分隔双精度数的十进制和整数部分。我尝试了多种方法,但是它们都遇到了相同的问题…
let x:Double = 1234.5678let 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.567800000000034,而无需将数字转换为字符串?
回答:
无需将其转换为字符串,您可以将舍入到小数点后的位数,如下所示:
let x:Double = 1234.5678let numberOfPlaces:Double = 4.0
let powerOfTen:Double = pow(10.0, numberOfPlaces)
let targetedDecimalPlaces:Double = round((x % 1.0) * powerOfTen) / powerOfTen
您的输出将是
0.5678
以上是 在Swift中获取双精度的小数部分 的全部内容, 来源链接: utcz.com/qa/412574.html