浮点数保留N位 (2位),为货币类场景常用选项。比较合理的做法是使用分来存储(int),然后前端在进行转换。否则你就需要关心浮点数自动 四拾伍入。分清自己使用场景选择自己的合适的方法。已知 (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)
//自己实现四拾伍入
fmt.Printf("%.2f\n", math.Trunc(1.244444*1e2+)*1e-2)
fmt.Printf("%.2f\n", math.Trunc(1.245444*1e2)*1e-2)
//抛弃掉后面位数
fmt.Printf("%.2f\n", math.Trunc(1.244444*1e2)*1e-2)
fmt.Printf("%.2f\n", math.Trunc(1.245444*1e2)*1e-2)
}
>>> "%.2f" % 1.24444
'1.24'
>>> "%.2f" % 1.24555
'1.25'
有疑问加站长微信联系(非本文作者)