1 Star 0 Fork 0

码布什 / go工具库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
FloatUtil.go 1.74 KB
一键复制 编辑 原始数据 按行查看 历史
zhengqiuyun 提交于 2023-02-21 16:29 . Init git
package util
import (
"fmt"
"github.com/shopspring/decimal"
"strconv"
)
//FormatFloat64 将多余的浮点格式化
func FormatFloat64(f float64) string {
return strconv.FormatFloat(f, 'f', -1, 64)
}
//FormatFloat32 将多余的浮点格式化
func FormatFloat32(f float32) string {
return strconv.FormatFloat(float64(f), 'f', -1, 32)
}
// AddFloat64 精度加法 a+b
func AddFloat64(a *float64, b *float64) *float64 {
//r, _ := new(big.Float).Add(new(big.Float).SetFloat64(*a), new(big.Float).SetFloat64(*b)).Float64()
r, _ := decimal.NewFromFloat(*a).Add(decimal.NewFromFloat(*b)).Float64()
return &r
}
// SubtractFloat64 精度减法 a-b
func SubtractFloat64(a *float64, b *float64) *float64 {
//r, _ := new(big.Float).Sub(new(big.Float).SetFloat64(*a), new(big.Float).SetFloat64(*b)).Float64()
r, _ := decimal.NewFromFloat(*a).Sub(decimal.NewFromFloat(*b)).Float64()
return &r
}
// MultiplyFloat64 精度乘法 axb
func MultiplyFloat64(a *float64, b *float64) *float64 {
//r, _ := new(big.Float).Mul(new(big.Float).SetFloat64(*a), new(big.Float).SetFloat64(*b)).Float64()
r, _ := decimal.NewFromFloat(*a).Mul(decimal.NewFromFloat(*b)).Float64()
return &r
}
// DivideFloat64 精度除法 a/b
func DivideFloat64(a *float64, b *float64) *float64 {
//r, _ := new(big.Float).Quo(new(big.Float).SetFloat64(*a), new(big.Float).SetFloat64(*b)).Float64()
r, _ := decimal.NewFromFloat(*a).Div(decimal.NewFromFloat(*b)).Float64()
return &r
}
func yuanToFen(t float64) int64 {
value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", *MultiplyFloat64(&t, Addr(float64(100)))), 64)
return int64(value + 0.5)
}
func fenToYuan(t int64) float64 {
value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", *DivideFloat64(Addr(float64(t)), Addr(float64(100)))), 64)
return value
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/manoshi/go-util.git
git@gitee.com:manoshi/go-util.git
manoshi
go-util
go工具库
v0.0.12

搜索帮助

344bd9b3 5694891 D2dac590 5694891