在Swift中获取双精度的小数部分

我正在尝试快速分隔双精度数的十进制和整数部分。我尝试了多种方法,但是它们都遇到了相同的问题…

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.567800000000034,而无需将数字转换为字符串?

回答:

无需将其转换为字符串,您可以将舍入到小数点后的位数,如下所示:

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

您的输出将是

0.5678

以上是 在Swift中获取双精度的小数部分 的全部内容, 来源链接: utcz.com/qa/412574.html

回到顶部