为了账号安全,请及时绑定邮箱和手机立即绑定

转到 fmt float64 问题

转到 fmt float64 问题

Go
慕田峪9158850 2021-12-20 16:23:43
在我对 go fmt 包的菜鸟理解中,我遇到了一些问题它与以下代码有关:导入“fmt”func main() {    var smallFloat float64 = 0.123456789    var bigFloat float64 = 123456789000    fmt.Println(fmt.Sprintf("%f", smallFloat))    fmt.Println(fmt.Sprintf("%f", bigFloat))}输出是:0.123457123456789000.000000我不想使用科学记数法,所以认为 %f 适合我的需要。我可以从格式页面(https://golang.org/pkg/fmt/)看到它说:The default precision for %e and %f is 6; for %g it is the smallest number of digits necessary to identify the value uniquely.有没有一种方法可以使用 fmt 包,它允许我表示 smallFloat 的完整十进制值,同时不在 bigFloat 的末尾附加 6 个零?
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

在我对 go fmt 包的菜鸟理解中,我遇到了一些问题


它与以下代码有关:


导入“fmt”


func main() {

    var smallFloat float64 = 0.123456789

    var bigFloat float64 = 123456789000


    fmt.Println(fmt.Sprintf("%f", smallFloat))

    fmt.Println(fmt.Sprintf("%f", bigFloat))

}

输出是:


0.123457

123456789000.000000

我不想使用科学记数法,所以认为 %f 适合我的需要。我可以从格式页面(https://golang.org/pkg/fmt/)看到它说:


The default precision for %e and %f is 6; for %g it is the smallest number of digits necessary to identify the value uniquely.

有没有一种方法可以使用 fmt 包,它允许我表示 smallFloat 的完整十进制值,同时不在 bigFloat 的末尾附加 6 个零?


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信