Golang 통화 서식 포맷팅 accounting 라이브러리 알아보기

오늘은 Golang으로 통화 포맷팅 출력하는 accounting 라이브러리를 알아보려 합니다.

accounting 설치

우선 Golang의 환경을 구성하기 위해 https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받을 수 있습니다.

맥에서 brew로 쉽게 설치할 수 있습니다.

brew install go

우분투에서도 apt로 쉽게 설치할 수 있습니다.

sudo apt-get install golang-go

go get으로 accounting 패키지를 설치합니다.

go get github.com/leekchan/accounting

홈의 go 폴더에 accounting 소스코드와 패키지 파일이 생성됩니다.

예제

package main

해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언합니다.

import (
	"fmt"

	"github.com/leekchan/accounting"
)

fmt와 accounting을 가져옵니다.

func main() {
	AccountingStruct := accounting.Accounting{Symbol: "₩"}

통화 기호를 지정하여 Accounting 구조체로 생성할 수 있습니다.

	fmt.Println(AccountingStruct.FormatMoney(123456789))

지정한 통화 기호를 적용하여 값을 출력합니다.

	AccountingStruct = accounting.Accounting{Symbol: "₩", Precision: 0, Thousand: ".", Decimal: ","}

통화 기호, 정밀도 그리고 천 단위와 소수점 구별을 위한 기호를 지정하여 Accounting 구조체로 생성할 수 있습니다.

	fmt.Println(AccountingStruct.FormatMoney(123456789))

지정한 통화 기호, 정밀도 그리고 천 단위와 소수점 구별을 적용하여 값을 출력합니다.

	AccountingStruct = accounting.Accounting{Symbol: "KRW", Format: "%s %v", FormatNegative: "%s -%v", FormatZero: "%s --"}

통화 기호뿐만 아니라, 출력될 때 형식을 지정할 포맷도 지정할 수 있으며 음수가 되었을 때도 포맷을 지정할 수 있습니다.

	fmt.Println(AccountingStruct.FormatMoney(123456789))
	fmt.Println(AccountingStruct.FormatMoney(-1000))
	fmt.Println(AccountingStruct.FormatMoney(0))

설정한 포맷을 적용하여 값을 출력합니다.

0원일 때의 포맷을 %s –로 지정했으므로 금액이 나타나지 않고, KRW –로 출력됩니다.

	DefaultAccounting := accounting.DefaultAccounting("KRW", 0)

	fmt.Println(DefaultAccounting.FormatMoney(123456789))
	fmt.Println(DefaultAccounting.FormatMoney(-1000))
	fmt.Println(DefaultAccounting.FormatMoney(0))

기본 설정으로 Accounting을 반환할 수 있습니다.

	DefaultAccounting = accounting.NewAccounting("KRW", 0, ",", ".", "%s %v", "%s -%v", "%s --")

	fmt.Println(DefaultAccounting.FormatMoney(123456789))
	fmt.Println(DefaultAccounting.FormatMoney(-1000))
	fmt.Println(DefaultAccounting.FormatMoney(0))
}

DefaultAccounting과 같은 기본 설정이지만, 더욱 더 많은 부분을 인자로 넘길 수 있습니다.

Written on September 1, 2019