UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

SOLVED: Day #2 - Side comment - Don't use Double for currency

Forums > 100 Days of SwiftUI

Went through 100 Days of SwiftUI a couple of years ago. With the update happening for newest version, I figured it was worth a second go round.

Paul said something I had never thought of before - Don't use Doubles for currency. It makes perfect sense because of the rounding errors in simple Doubles.

So in Xcode 13.1, Swift 5.5... What do we use for currency?

3      

Use Decimal instead.

Even better is to use a data structure that also encompasses a particular currency along with a Decimal amount.

I highly recommend Flight School's book Guide to Swift Numbers, which has an entire chapter on this topic. They have also published a Money package that incorporates all of their advice from that book.

Or if that's too much for your needs, they suggest a simple struct like this:

struct Money {
   enum Currency: String {
      case USD, EUR, GBP, CNY // supported currencies here
   }

   var amount: Decimal
   var currency: Currency
}

3      

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until April 28th.

Click to save your free spot now

Sponsor Hacking with Swift and reach the world's largest Swift community!

Archived topic

This topic has been closed due to inactivity, so you can't reply. Please create a new topic if you need to.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.