# How to get mathemical PI constant in Swift

I am trying to find a way to include the PI constant in my Swift code. I already found help in another answer, to `import Darwin` which I know gives me access to C functions.

I also checked the `Math` package in `Darwin` and came across the following declaration:

• Objective-C: Flooring to 3 decimals correctly
• Solve Equations Of Type A*X = B Using dgtsv_ or sgtsv_
• objective-c round number to nearest 50
• Modulo operator in Objective-C returns the wrong result
• Update rotational data from the gyroscope with respect to a predefined orientation?
• One step affine transform for rotation around a point?
• `var M_PI: Double { get } /* pi */`

So, I assume there is a way to use PI in the code, I just don’t know how

### 2 Solutions Collect From Internet About “How to get mathemical PI constant in Swift”

With Swift 3, pi is now defined as a static variable on the floating point number types `Double`, `Float` and `CGFloat`, so no specific imports are required any more:

``````Double.pi
Float.pi
CGFloat.pi
``````

Also note that the actual type of `.pi` can be inferred by the compiler. So, in situations where it’s clear from the context that you are using e.g. `CGFloat`, you can just use `.pi` (thanks to @Qbyte and @rickster for pointing that out in the comments).

For older versions of Swift:

`M_PI` is originally defined in `Darwin` but is also contained in `Foundation` and `UIKit`, so importing any of these will give you the right access.

``````import Darwin // or Foundation or UIKit

let pi = M_PI
``````

Note:
As noted in the comments, pi can also be used as unicode character in Swift, so you might as well do

``````let π = M_PI
``````

`alt + p` is the shortcut (on US-keyboards) that will create the `π` unicode character.

`import Darwin` is not needed all M_x are visible with the `import Foundation`

( Xcode Version 6.4 (6E35b) )