Swift에서 수학적 PI 상수를 얻는 방법


153

스위프트 코드에 PI 상수포함 시키는 방법을 찾으려고합니다 . 나는 이미 C 함수에import Darwin 액세스 할 수있는 다른 대답에서 도움을 찾았습니다 .

또한 Math패키지를 체크인 Darwin하고 다음 선언을 보았습니다.

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

따라서 코드에서 PI를 사용하는 방법이 있다고 가정 합니다 . 어떻게하는지 모르겠습니다 ...

답변:


282

함께 신속한 3, 4 , PI 이제 부동 소수점 숫자 유형에 정적 변수로서 정의되고 Double, Float그리고 CGFloat특정 수입 더 이상 필요하지 않도록 :

Double.pi
Float.pi
CGFloat.pi

또한 실제 유형은 .pi컴파일러에서 유추 할 수 있습니다. 따라서 예를 들어 사용중인 컨텍스트에서 분명한 상황에서는 주석을 CGFloat사용 .pi하여 @Qbyte 및 @rickster 덕분에 사용할 수 있습니다 .

대한 스위프트의 이전 버전 :

M_PI은에 정의되어 Darwin있지만 FoundationUIKit에 포함되어 있으므로이 중 하나를 가져 오면 올바른 액세스 권한이 부여됩니다.

import Darwin // or Foundation or UIKit

let pi = M_PI

참고 : 주석에서 언급했듯이 pi는 Swift에서 유니 코드 문자 로도 사용할 수 있으므로 그렇게 할 수도 있습니다

let π = M_PI

alt + pπ유니 코드 문자를 생성하는 바로 가기 (미국 키보드)입니다 .


5
스위프트가 유니 코드를 지원하므로, 당신은 또한 할 수var π = M_PI
시릴

23
pi는 상수이므로이를로 선언하는 것은 잘못된 것 같습니다 var. 확실히 let pi = M_PI?
Grimxn

2
특별한 것은 필요하지 않습니다. Alt-p는 기본적으로 pi입니다.
Grimxn

3
미국 키보드의 Alt-P라고 가정합니까? 확실히 내 것이 아닙니다 (인쇄 창을 호출하는 곳). 코드에 임의의 유니 코드 문자를 쓰지 마십시오. 나는 동료들이 코드에서 찾을 때마다 π를 쓰는 방법을 인터넷 검색하지 않기를 바랍니다.
Sulthan December

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.