将float转换为string而不改变float

时间:2018-02-14 18:53:28

标签: go

我在Golang中将float转换为这样的字符串

a := strconv.FormatFloat(-3.6739403974420544e-15, 'f', -1, 64)

它给我这个输出

-0.0000000000000036739403974420544

但是,我宁愿将此作为输出

   "-3.673940397442059e-15"

在这个问题的标题中,我说“不改变”浮动。通过“改变”,我指的是添加0代替e-15。有办法吗?

2 个答案:

答案 0 :(得分:3)

我认为你只是使用了错误的格式说明符:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    fmt.Println(strconv.FormatFloat(-3.6739403974420544e-15, 'e', -1, 64))
}

输出:

-3.6739403974420544e-15

docs也会显示其他格式。

答案 1 :(得分:2)

这应该这样做

f := -3.6739403974420544e-15
fmt.Println(fmt.Sprint(f))