浮點數(shù)保留N位 (2位),為貨幣類場景常用選項。比較合理的做法是使用分來存儲(int),然后前端在進(jìn)行轉(zhuǎn)換。否則你就需要關(guān)心浮點數(shù)自動 四拾伍入。分清自己使用場景選擇自己的合適的方法。已知 (mysql(douboule10,2),golang "%.2f",python "%.2f" )
package main
import (
"fmt"
"math"
)
func main() {
//四拾伍入了
fmt.Printf("%.2f\n", 1.244444)
fmt.Printf("%.2f\n", 1.245444)
//自己實現(xiàn)四拾伍入
fmt.Printf("%.2f\n", math.Trunc(1.244444*1e2+)*1e-2)
fmt.Printf("%.2f\n", math.Trunc(1.245444*1e2)*1e-2)
//拋棄掉后面位數(shù)
fmt.Printf("%.2f\n", math.Trunc(1.244444*1e2)*1e-2)
fmt.Printf("%.2f\n", math.Trunc(1.245444*1e2)*1e-2)
}

golang執(zhí)行結(jié)果.png
>>> "%.2f" % 1.24444
'1.24'
>>> "%.2f" % 1.24555
'1.25'