SwiftでCGFloatの値をNSLogで%fで表示しようとすると不正な値が表示されます。
String(format:)でも同様です。
Xcode6.1.1 で検証。
例えば、以下の様なコードで0.00000と表示されます。
let a : CGFloat = 3.14
NSLog("%f", a)
let s = String(format: "%f", a)
NSLog("%@", s)
実行結果:
2014-12-17 05:48:05.783 SfLogTest[5597:957937] 0.000000
2014-12-17 05:48:05.785 SfLogTest[5597:957937] 0.000000
そろらくバグだと思われるのでいずれ修正されると思いますが、知らないとハマりますので注意しましょう。
回避策は色々ありますが、.nativeを付けておくのが無難だと思います。
let a : CGFloat = 3.14
NSLog("%f", a.native)
実行結果:
2014-12-17 06:00:02.355 SfLogTest[5843:975719] 3.140000