以golang的科学格式提供输出

以golang的科学格式提供输出,go,parsefloat,Go,Parsefloat,我试图使用golang中的Parsefloat函数解析这个字符串“7046260”,但我得到的是科学格式的输出7.04626e+06。我希望输出的格式为7046260。如何得到这个 package main import ( "fmt" "strconv" ) func main() { Value := "7046260" Fval, err := strconv.ParseFloat(Value

我试图使用golang中的
Parsefloat
函数解析这个字符串“7046260”,但我得到的是科学格式的输出
7.04626e+06
。我希望输出的格式为
7046260
。如何得到这个

package main

import (
    "fmt"
    "strconv"
)

func main() {

    Value := "7046260"
    Fval, err := strconv.ParseFloat(Value, 64)

    if err == nil {
        fmt.Println(Fval)
    }

}
输出:-7.04626e+06

以golang的科学格式提供输出

我试图使用golang中的Parsefloat函数解析这个字符串“7046260”,但我得到的是科学格式7.04626e+06的输出。我想要7046260格式的输出

  • 您将浮点值的(默认)格式化输出与其内部表示混淆
  • ParseFloat
    工作正常
  • 您只需指定输出格式:
    • 使用
      Printf
      指定格式字符串
    • 使用格式
      %.0f
      指示Go按如下方式打印值:
      • %
        标记占位符的开头
      • 表示默认宽度(即不添加前导零或尾随零)
      • 0
        表示零基数精度(即不打印任何小数点,即使该值有小数点)
      • f
        表示占位符的结尾,占位符表示浮点值
我还有一些其他建议:

  • Go中的局部变量应使用
    camelCase
    ,而不是
    PascalCase
  • 您应该检查
    err!=nil
    每次
    nil
    后-返回函数返回,或者快速失败(如果合适),传递错误(并且可以选择记录错误),或者优雅地处理错误
  • 使用浮点数时,应注意
    NaN
    的特殊状态。
    IsNaN
    函数是正确检查
    NaN
    值的唯一方法(因为
    (aNaNValue1==math.NaN)==false
    )。
    • 这同样适用于所有实现IEEE-754的语言,包括Java、JavaScript、C、C#NET和Go
像这样:

package main

import (
    "fmt"
    "strconv"
    "math"
    "log"
)

func main() {

    numberText := "7046260"
    numberFloat, err := strconv.ParseFloat(numberText, 64)
    if err != nil {
        log.Fatal(err)
    }

    if math.IsNaN(numberFloat) {
        log.Fatal("NaN value encountered")
    }

    fmt.Printf("%.0f",numberFloat)
    fmt.Println()

}

您将格式化输出与内部表示混淆
ParseFloat
工作正常。您只需要指定一种输出格式。此外,在使用IEE-754时,还需要检查
NaN
(使用
math.IsNaN
)如果numberText=“7046260.12345678”最后我想要numberFloat=7046260.12345678我不知道数字将在浮点部分,我想要最终解析为float@AbhirajRoy请阅读
fmt
的文档: