最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang小數(shù)操作指南之判斷小數(shù)點位數(shù)與四舍五入

 更新時間:2022年03月03日 10:23:56   作者:頭禿貓輕王  
這篇文章主要給大家介紹了關(guān)于Golang小數(shù)操作指南之判斷小數(shù)點位數(shù)與四舍五入的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、判斷幾位小數(shù)點

1.判斷幾位小數(shù)點

加載 cast 包

go get github.com/spf13/cast

代碼如下(示例):

package main
import (
	"fmt"
	"github.com/spf13/cast"
	"math"
	"regexp"
	"strconv"
)

func main() {
	num1 := 5.335
	// 判斷幾位小數(shù)
	decimal, _ := CheckDecimal(cast.ToString(num1), "2")
	fmt.Println(decimal)

}

// CheckDecimal 判斷小數(shù)點后幾位小數(shù)點
// str 所要判斷的 小數(shù)字符串
// n 所要判斷的 位數(shù)
func CheckDecimal(str string, n string) (bool, error) {
	// 通過 regexp 的 正則比較
	// ([1-9]\d*) 1-9 的任意位數(shù)
	// (0) 或者第一位是 0
	// d{0,`+n+`} 0-n 位數(shù)
	return regexp.MatchString(`^(([1-9]\d*)|(0))(\.\d{0,`+n+`})?$`, str)
}

二、四舍五入

1.fmt.Sprintf

測試:

5.334
5.335
5.336

代碼如下(示例):

package main
import (
	"fmt"
	"github.com/spf13/cast"
	"math"
	"strconv"
)

func main() {
	num1 := 5.334
	fmt.Println(Float64Rand(num1,2))

}

//四舍五入
func Float64Rand(v float64, dig int) float64 {
	cDig := strconv.Itoa(dig)
	val := fmt.Sprintf("%0."+cDig+"f", v)
	return cast.ToFloat64(val)
}

結(jié)果

從結(jié)果可以知道,官方包 fmt的四舍五入功能 不能達到我們的完美預(yù)期,四舍可以完成,但五入失敗,只有當?shù)谌怀蔀榱鶗r才可生效

2.math.Round(result*pow)

測試:

5.334
5.335
5.336

代碼如下(示例):

package main
import (
	"fmt"
	"github.com/spf13/cast"
	"math"
	"strconv"
)

func main() {
	num1 := 5.334
	fmt.Println("num1:",num1)
	fmt.Println("res1:",FormatFloat(num1,2))
	num2 := 5.335
	fmt.Println("num2:",num2)
	fmt.Println("res2:",FormatFloat(num2,2))
	num3 := 5.336
	fmt.Println("num3:",num3)
	fmt.Println("res3:",FormatFloat(num3,2))
}

func FormatFloat(f float64, dig int) float64 {
	result := cast.ToFloat64(strconv.FormatFloat(f, 'f', dig+1, 64))
	pow := math.Pow(10, float64(dig))
	return math.Round(result*pow) / pow
}

結(jié)果

從結(jié)果可以知道,math.Round(result*pow) 可以達到我們的完美預(yù)期,四舍五入可以完成。

總結(jié)

當官方包不足以滿足我們的需要時,我們需要去尋找一個可以滿足需要的方法來實現(xiàn)想要的功能,也將會在之后努力通過官方包實現(xiàn)四舍五入,讓自己拓展知識面。

到此這篇關(guān)于Golang小數(shù)操作指南之判斷小數(shù)點位數(shù)與四舍五入的文章就介紹到這了,更多相關(guān)Golang判斷小數(shù)點與四舍五入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Golang實現(xiàn)YOLO目標檢測算法

    基于Golang實現(xiàn)YOLO目標檢測算法

    目標檢測是計算機視覺領(lǐng)域的重要任務(wù),它不僅可以識別圖像中的物體,還可以標記出物體的位置和邊界框,YOLO是一種先進的目標檢測算法,以其高精度和實時性而聞名,本文將介紹如何使用Golang實現(xiàn)YOLO目標檢測算法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11
  • Golang中禁止拷貝的實現(xiàn)代碼

    Golang中禁止拷貝的實現(xiàn)代碼

    這篇文章主要給大家介紹了關(guān)于Golang中實現(xiàn)禁止拷貝的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • windows下使用vscode搭建golang環(huán)境并調(diào)試的過程

    windows下使用vscode搭建golang環(huán)境并調(diào)試的過程

    這篇文章主要介紹了在windows下使用vscode搭建golang環(huán)境并進行調(diào)試,主要包括安裝方法及環(huán)境變量配置技巧,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 詳解Go語言中上下文context的理解與使用

    詳解Go語言中上下文context的理解與使用

    在Go的日常開發(fā)中,Context上下文對象無處不在,這篇文章小編就來帶大家深入了解一下上下文context的理解與使用,文中的示例代碼講解詳細,需要的可以參考下
    2023-10-10
  • Go 面向包新提案透明文件夾必要性分析

    Go 面向包新提案透明文件夾必要性分析

    這篇文章主要為大家介紹了Go 面向包新提案,透明文件夾必要性分析,看看是否合適加進 Go 特性中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • go語言心跳超時的實現(xiàn)示例

    go語言心跳超時的實現(xiàn)示例

    本文主要介紹了go語言心跳超時的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • 詳解Go語言的錯誤處理和資源管理

    詳解Go語言的錯誤處理和資源管理

    資源處理是什么?打開文件需要關(guān)閉,打開數(shù)據(jù)庫連接,連接需要釋放。這些成對出現(xiàn)的就是資源管理。有時候我們雖然釋放了,但是程序在中間出錯了,那么可能導致資源釋放失敗。如何保證打開的文件一定會被關(guān)閉呢?這就是資源管理與錯誤處理考慮的一個原因
    2021-06-06
  • GoLang切片并發(fā)安全解決方案詳解

    GoLang切片并發(fā)安全解決方案詳解

    這篇文章主要介紹了GoLang切片并發(fā)安全問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • Golang設(shè)計模式之組合模式講解

    Golang設(shè)計模式之組合模式講解

    這篇文章主要介紹了Golang設(shè)計模式之組合模式,組合模式針對于特定場景,如文件管理、組織管理等,使用該模式能簡化管理,使代碼變得非常簡潔
    2023-01-01
  • node-exporter被檢測出來pprof調(diào)試信息泄露漏洞問題

    node-exporter被檢測出來pprof調(diào)試信息泄露漏洞問題

    這篇文章主要介紹了node-exporter被檢測出來pprof調(diào)試信息泄露漏洞問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

双城市| 金湖县| 神池县| 图木舒克市| 枣强县| 潼关县| 锡林郭勒盟| 普兰县| 中宁县| 普兰县| 商城县| 汶上县| 闽清县| 宜良县| 华容县| 桦川县| 乌鲁木齐市| 吉安县| 清水县| 鄱阳县| 炎陵县| 乌拉特后旗| 云浮市| 宜丰县| 彰化市| 东山县| 石河子市| 上林县| 大冶市| 丹棱县| 紫云| 化德县| 炉霍县| 阿图什市| 安国市| 资阳市| 内江市| 肥西县| 竹北市| 昆明市| 和静县|