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


153

私は私のSwiftコードにPI定数含める方法を見つけようとしています。私はすでに別の回答でヘルプを見つけました。import Darwinその回答でC関数にアクセスできます

また、MathパッケージをチェックインしDarwinて、次の宣言を見つけました。

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

したがって、コード内でPIを使用する方法があると思いますが、どうすればよいわかりません...

回答:


282

スウィフト3&4、PIは、現在の浮動小数点数型で静的変数として定義されDoubleFloatそしてCGFloatいかなる特定の輸入がそれ以上必要とされないので、。

Double.pi
Float.pi
CGFloat.pi

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

スウィフトの古いバージョン

M_PIはもともとで定義されてDarwinいますが、FoundationおよびUIKitにも含まれているため、これらのいずれかをインポートすると正しいアクセス権が与えられます。

import Darwin // or Foundation or UIKit

let pi = M_PI

注: コメントに記載されているように、piはSwiftでUnicode文字としても使用できるため、次のようにすることもできます

let π = M_PI

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


5
SwiftはUnicodeをサポートしているため、次のこともできますvar π = M_PI
Cyrille

23
piは定数なので、として宣言するのはおかしいようvarです。確かにlet pi = M_PI
Grimxn 2014年

2
特別なことは何も必要ありません-デフォルトでAlt-pはpiです。
Grimxn 2014年

3
USキーボードのAlt-Pでしょうか?確かに私のものではありません(印刷ウィンドウを呼び出します)。コードにランダムなUnicode文字を記述しないでください。同僚がコードでπを見つけるたびに、どのようにπを書くかをグーグルで調べてほしくない。
スルタン

2
注:Piのタイプを推測できる場合.piは、長い形式の代わりに使用することもできます。例えばlet x = CGFloat(42) * .pi
Qbyte

15

import Darwin すべてのM_xは、 import Foundation

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


1

警告:「M_PI」は廃止されました:「Double.pi」または「.pi」を使用して、正しい型の値を取得し、キャストを回避してください。

驚いたことに、.piも正常に機能します。M_PIは、現在使用しているバージョンであるSwift 4.2.1、Xcode 10.1で廃止されました。SO、.pi、またはDouble.piを使用

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.