golang中浮點型底層存儲原理和decimal使用方法


var price float32 = 39.29

 

 

 float64和float32類似,只是用於表示各部分的位數不同而已,其中:sign=1位,exponent=11位,fraction=52位,也就意味着可表示的范圍更大了。

 

二、decimal類型

  由於golang中默認沒有decimal類型,如果想使用decimal類型需要通過第三方包

go get github.com/shopspring/decimal

  decimal使用方式

package main

import (
	"fmt"
	"github.com/shopspring/decimal"
)

func main() {
	var v1 = decimal.NewFromFloat(0.1)
	var v2 = decimal.NewFromFloat(0.2)

	var v3 = v1.Add(v2)
	var v4 = v1.Sub(v2)
	var v5 = v1.Mul(v2)
	var v6 = v1.Div(v2)

	var v7 = decimal.NewFromFloat(3.4625)
	var data1 = v7.Round(1)
	var data2 = v7.Truncate(1)

	fmt.Println(v3, v4, v5, v6)
	fmt.Println(data1, data2)
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM