LoginSignup
8
8

More than 5 years have passed since last update.

SwiftでCGFloatをNSLogに表示するときの注意点

Posted at

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

8
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8