| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package utils
- import (
- "math"
- "math/big"
- "sort"
- "strconv"
- )
- // FormatFloat 保留指定小数位并返回字符串
- func FormatFloat(num float64, decimal int) string {
- // 默认乘1
- d := float64(1)
- if decimal > 0 {
- // 10的N次方
- d = math.Pow10(decimal)
- }
- // math.trunc作用就是返回浮点数的整数部分
- // 再除回去,小数点后无效的0也就不存在了
- return strconv.FormatFloat(math.Trunc(num*d)/d, 'f', -1, 64)
- }
- // SortInIntSlice 判断int是否包含于数组中
- func SortInIntSlice(haystack []int, needle int) bool {
- sort.Ints(haystack)
- index := sort.SearchInts(haystack, needle)
- return index < len(haystack) && haystack[index] == needle
- }
- // IntToFloat64 IntToFloat64 高精度转
- func IntToFloat64(value int, decimal int) float64 {
- if value == 0 {
- return 0
- }
- numrator, _ := new(big.Float).SetPrec(uint(1024)).SetString(strconv.Itoa(value))
- denominator := big.NewFloat(math.Pow10(decimal))
- denominator1 := numrator.Quo(numrator, denominator)
- rst, _ := denominator1.Float64()
- return rst
- }
|