如何将Float 64值转换为字符串。较小的值是罚款,但远距离正在转换为E格式,而E格式不是所需的输出。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var mapobj float64
    mapobj = 3856
    fmt.Println(fmt.Sprintf("%v", mapobj))

    var mapobj1 float64
    mapobj1 = 4183856
    fmt64 := strconv.FormatFloat(mapobj1, 'g', -1, 64)
    fmt.Println(fmt.Sprintf("%v", fmt64), fmt64)     <<<< Need to print 4183856
}
分析解答

要将float64值转换为go中的字符串,而无需以指数(e)格式获取它,则可以使用strconv.formatfloat()函数。该功能需要四个参数:

您要转换的浮点数。 您要使用的格式:小数点的“ f”,但没有指数,'e'用于科学符号,“ g”,用于最短的表示等。 精度:您想要的小数点数,或使用最短表示形式的-1。 位大小:使用64用于float64。 这是一个示例代码片段以证明:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var mapobj float64
    mapobj = 3856
    fmt.Println(fmt.Sprintf("%v", mapobj))

    var mapobj1 float64
    mapobj1 = 4183856
    fmt64 := strconv.FormatFloat(mapobj1, 'f', 0, 64) // Using 'f' and 0 decimal places
    fmt.Println(fmt64)  // Will print "4183856"
}

在此示例中,我使用了格式“ F”和0个小数点位置(strconv.formatfloat(mapobj1,'f',0,64)),它将将4183856作为float64转换为"4183856",为字符串。

这样,您的float64将不用指数表示法转换为字符串。