go語言中float64 保留2位小數

func Decimal(value float64) float64 {
    return math.Trunc(value*1e2+0.5) * 1e-2
}

加上 0.5是爲了四捨五入,想保留幾位小數的話把2改掉即可。

這個版本有個關於浮點型數精度的問題,經常會出現 13.0000000001類似的結果。

下面的是先通過Sprintf保留兩位小數,再轉成float64.

func Decimal(value float64) float64 {
	value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", value), 64)
	return value
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章