以golang的科学格式提供输出
我试图使用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
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
- 使用格式
指示Go按如下方式打印值:%.0f
标记占位符的开头%
表示默认宽度(即不添加前导零或尾随零)
表示零基数精度(即不打印任何小数点,即使该值有小数点)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
的文档: