web-dev-qa-db-ja.com

Swiftで数学的なPI定数を取得する方法

SwiftコードにPI定数を含めるへの方法を見つけようとしています。 import Darwinへの別の答えですでに助けを見つけました。これはC関数にアクセスできることを知っています。

また、MathDarwinパッケージを確認しましたが、次の宣言が見つかりました。

var M_PI: Double { get } /* pi */

だから、私はコードでPIを使用する方法があると仮定します、私はただ知りませんhow ...

146
nburk

Swift 3&4を使用すると、piは浮動小数点型のDoubleFloat、およびCGFloatの静的変数として定義されるため、特定のインポートは不要になりました。

Double.pi
Float.pi
CGFloat.pi

また、.piの実際の型は、コンパイラーによって推測できることに注意してください。だから、あなたが使用しているコンテキストから明らかな状況では、例えばCGFloat.piを使用できます(コメントで指摘してくれた@Qbyteと@ricksterに感謝します)。

Swiftの古いバージョンの場合:

M_PIは元々Darwinで定義されていますが、FoundationおよびUIKitにも含まれているため、これらのいずれかをインポートすると適切なアクセスが可能になります。

import Darwin // or Foundation or UIKit

let pi = M_PI

注:コメントで述べたように、piはSwiftでunicode文字として使用することもできます。

let π = M_PI

alt + pは、πユニコード文字を作成するショートカット(USキーボード上)です。

265
nburk

import Darwinは必要ありません。すべてのM_xはimport Foundationで表示されます

(Xcodeバージョン6.4(6E35b))

15
Guyvo

警告: 'M_PI'は非推奨です: 'Double.pi'または '.pi'を使用して正しい型の値を取得し、キャストを回避してください。

驚くべきことに、.piも正常に機能します。 M_PIは、Swift 4.2.1、Xcode 10.1で非推奨になりました。これは現在使用しているバージョンです。 SO、.pi、またはDouble.piを使用

1
Sree