我试图在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.567800000000034而无需将数字转换为字符串?
如果不将其转换为字符串,您可以向上舍入到如下所示的多个小数位:
原文链接:https://www.f2er.com/swift/319969.htmllet 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