关于浮点数精度再各个编程语言需要注意点

浮点数保留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)
}
golang执行结果.png
>>> "%.2f" % 1.24444
'1.24'
>>> "%.2f" % 1.24555
'1.25'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容