Question: I am trying to convert this `Obj-C` code to `Swift` code but I don't know what the equivalent of this code should be ?

```
#define DEGREES_TO_RADIANS(degrees)((M_PI * degrees)/180)

```

I googled and found [this](https://stackoverflow.com/questions/24325477/how-to-use-a-objective-c-define-from-swift)

But I don't understand how to convert that in Swift in my case?

Answer: 
```
let angle = 45° // angle will be in radians, 45 is in degrees

```

Compiles under **Swift 3**. Still keep all values, do all calculations in radians with CGFloats..., but make the code more readable with the constants in degrees. **For example: 90°** 
The ° sign will magically do the degrees to radians conversion. 

How to set this up:

Define and use a postfix operator for the **°** sign. This operator will do the conversion from degrees to radians.
This example is for Ints, extend these also for the Float types if you have the need.

```
postfix operator °

protocol IntegerInitializable: ExpressibleByIntegerLiteral {
  init (_: Int)
}

extension Int: IntegerInitializable {
  postfix public static func °(lhs: Int) -> CGFloat {
    return CGFloat(lhs) * .pi / 180
  }
}

```

Some examples of usage:

```
let angle = 45°

contentView.transform = CGAffineTransform(rotationAngle: 45°)

let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)

```

Warning!

It is too easy to use this conversion twice (on a value already in radians by mistake), you will get a very small number as the result, and seemingly the resulting angle will be always zero... DO NOT use ° on the same value twice (do not convert twice)!!:

```
// OBVIOUSLY WRONG!
let angle = 45°° // ° used twice here

// WRONG! BUT EASY TO MISS
let angle = 45° // ° used here
contentView.transform = CGAffineTransform(rotationAngle: angle°) // ° also used here

```
I'd use the same principle @t1ser mentioned above, but create an extension of `CGFloat` to make it easier to use decimals for the degree as well (so you could have a 23.4 degrees, for example): 

```
extension CGFloat {
    func degrees() -> CGFloat {
        return self * .pi / 180
    }

    init(degrees: CGFloat) {
        self = degrees.degrees()
    }
}

```

Using it would be pretty easy as well (mainly because I personally didn't know how to type ° - in case you didn't either, it's `option+shift+8` btw):

```
let degreesToConvert: CGFloat = 45.7
.
.
.
let convertedDegrees = degreesToConvert.degrees()

```

Or to use the initialiser: 

```
let convertedDegrees = CGFloat(degrees: 45.3)

```