What’s the difference between Float and Double in Swift
Published on: June 10, 2020A Double
and Float
are both used to represent decimal numbers, but they do so in slightly different ways.

In-app purchases made easy. RevenueCat provides everything you need to implement, manage, and analyze in-app purchases without managing servers or writing backend code.
Try RevenueCat now
This sponsored message helps keep the content on this site free. Please check out this sponsor as it directly supports me and this site.
If you initialize a decimal number in Swift using as shown below, the Swift compiler will assume that you meant to create a Double
:
let val = 3.123 // val is inferred to be Double
The reason for this is that Double
is the more precise type when comparing it to Float
. A Float
holds a total of 8 positions, or 32 bits. Since Double
is more precise, it can hold more positions. It uses 64 bits to do this. In practice, that means the following:
print(Double.pi) // 3.141592653589793
print(Float.pi) // 3.1415925
As you can see, Double
can represent pi
far more accurately than Float
. We can make the difference more obvious if we multiply pi
by 1000
:
print(Double.pi * 1000) // 3141.592653589793
print(Float.pi * 1000) // 3141.5925
Both Double
and Float
sacrifice some after the comma precision when you multiply pi
by 1000
. For Float
this means that it only has four decimal places while Double
still has twelve.