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