>  기사  >  백엔드 개발  >  golang은 돈을 어떻게 표현하나요?

golang은 돈을 어떻게 표현하나요?

PHPz
PHPz원래의
2023-05-10 11:35:071291검색

golang에서는 돈을 표현하기 위해 float64 또는 십진 라이브러리를 사용할 수 있습니다.

  1. float64를 사용하여 돈을 표현하세요

golang에서 부동 소수점 숫자 유형인 float64는 가장 일반적으로 사용되는 숫자 유형 중 하나이며 이를 사용하여 돈을 나타낼 수 있습니다. 기본적인 계산과 비교만 필요하다면 float64를 사용하는 것이 좋은 선택입니다. 예:

var price float64 = 19.99
var total float64 = price * 2
fmt.Println(total) // 39.98

위 예에서는 float64 유형의 가변 가격을 선언하고 19.99로 초기화했습니다. 그런 다음 가격 * 2를 사용하여 총 가격을 계산하고 그 결과를 total에 할당했습니다. 마지막으로 total 값인 39.98을 인쇄합니다.

그러나 부동 소수점 숫자에는 정밀도 문제가 있다는 점에 유의해야 합니다. 예:

var price float64 = 0.1
var total float64 = price * 0.2
fmt.Println(total) // 0.020000000000000004

위의 예에서는 float64 유형 변수 가격을 선언하고 0.1로 초기화했습니다. 그런 다음 가격 * 0.2를 사용하여 총 가격을 계산하고 그 결과를 total에 할당했습니다. 마지막으로 total 값을 인쇄하고 결과는 0.020000000000000004입니다. 이는 부동 소수점 숫자의 정밀도 문제로 인해 발생하므로 돈을 다룰 때에는 정밀도가 더 높은 십진 라이브러리를 사용하는 것이 좋습니다.

  1. 돈을 표현하기 위해 10진수 라이브러리를 사용하세요

golang의 10진수 라이브러리는 더 높은 정밀도를 제공하므로 부동 소수점 숫자로 인한 정밀도 문제를 효과적으로 방지하여 돈을 더 잘 표현할 수 있습니다. 예:

import "github.com/shopspring/decimal"

func main() {
    price := decimal.NewFromFloat(19.99)
    total := price.Mul(decimal.NewFromInt(2))
    fmt.Println(total) // 39.98
}

위의 예에서는 십진수 라이브러리를 사용하고 해당 Mul() 메서드를 인용하여 총 가격을 계산했습니다. 또한 NewFromFloat() 메서드와 NewFromInt() 메서드를 사용하여 십진수 유형 변수를 생성합니다. 결과 값은 10진수 값으로 수치 정밀도 10의 24승에 해당하므로 정확도에 영향을 주지 않음을 보장할 수 있습니다.

Summary

golang에서는 float64나 십진수 라이브러리를 사용하여 돈을 표현할 수 있습니다. 기본적인 계산과 비교만 필요하다면 float64를 사용하는 것이 좋은 선택입니다. 그러나 부동 소수점 숫자에는 정밀도 문제가 있다는 점에 유의하는 것이 중요합니다. 더 높은 정밀도가 필요한 경우 십진 라이브러리를 사용하는 것이 더 나은 선택입니다. 돈을 다룰 때에는 정확성 문제로 인한 오류를 피하기 위해 정확성 문제에 특별한 주의를 기울이십시오.

위 내용은 golang은 돈을 어떻게 표현하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.