Overview
- folat来表示非精确表示小数
- float32,用32位(4个字节)来存储浮点型
- float64,用64位(8个字节)来存储浮点型
- 由于float是表示非精确小数,则无法很好的进行加减乘除运算等,因此需要引用另一个包:decimal
- decimal 来表示精确小数(Go语言内部没有decimal)

Description
1)安装decimal
go get github.com/shopspring/decimal

命令执行完后,会在$GOPATH\pkg\mod的目录下就会出现github.com\shopspring\decimal@vx.x.x的目录,这就是第三方模块安排的位置

2)使用decimal
- 导入decimal包
import "github.com/shopspring/decimal" - 使用decimal包
var 变量 = decimal.NewFromFloat(小数) - 使用decimal进行加减乘除
- 相加
var 变量1 = decimal.NewFromFloat(小数)
var 变量2 = decimal.NewFromFloat(小数)
变量3 := 变量1.Add(变量2) - 相减
var 变量1 = decimal.NewFromFloat(小数)
var 变量2 = decimal.NewFromFloat(小数)
变量3 := 变量1.Sub(变量2) - 相乘
var 变量1 = decimal.NewFromFloat(小数)
var 变量2 = decimal.NewFromFloat(小数)
变量3 := 变量1.Mul(变量2) - 相除
var 变量1 = decimal.NewFromFloat(小数)
var 变量2 = decimal.NewFromFloat(小数)
变量3 := 变量1.Div(变量2)
- 相加
- 使用decimal进行四舍五入Round
var 变量 = decimal.NewFromFloat(小数)
变量.Round(位数) ---代表保留几位小数 - 使用decimal进行Truncate
var 变量 = decimal.NewFromFloat(小数)
变量.Truncate(位数) ---保留几位小数但不进行四舍五入
例子

package main
import (
"fmt"
"github.com/shopspring/decimal"
)
func main() {
var n1 = decimal.NewFromFloat(1.2345678)
var n2 = decimal.NewFromFloat(2.3456789)
//相加
n4 := n1.Add(n2)
fmt.Println(n4)
//相减
n5 := n1.Sub(n2)
fmt.Println(n5)
//相乘
n6 := n1.Mul(n2)
fmt.Println(n6)
//相除
n7 := n1.Div(n2)
fmt.Println(n7)
}
1828

被折叠的 条评论
为什么被折叠?



