But you can choose any data type for storing amount/balance, as long as it's not overflow. Even custom decimal configuration (if programming language or SQL database support it) such as decimal(7,8) would work.
If you get the amount from another nodes/server, you simply need to find out data type they uses. For example, JSON-RPC used by Bitcoin core uses double.
If you get the amount from input from user, just specify default Bitcoin unit (BTC, mBTC or Satoshi) and there won't be any problem.
I never learn golang, but yes since i (and perhaps you) don't know standard that bitcoin and golang uses.