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
}