fmt.Sscanf科学计数法示例
package main import "fmt" func main() { var ( old = "75271.0000002e+19" new float64 ) n, err := fmt.Sscanf(old, "%e", &new) if err != nil { fmt.Println(err.Error()) } else if 1 != n { fmt.Println("n is not one") } fmt.Println(uint64(new)) }
说明:
%v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format.
when printing structs, the plus flag (%+v) adds field names
%#v 值的Go语法表示。
%T 值的类型的Go语法表示。
%% 百分号。
布尔型:
%t 值的true或false
整型:
%b 二进制表示
%c 数值对应的Unicode编码字符
%d 十进制表示
%o 八进制表示
%q 单引号
%x 十六进制表示,使用a-f
%X 十六进制表示,使用A-F
%U Unicode格式: U+1234,等价于”U+%04X”
浮点数:
%b 无小数部分、两位指数的科学计数法,和strconv.FormatFloat的’b’转换格式一致。举例:-123456p-78
%e 科学计数法,举例:-1234.456e+78
%E 科学计数法,举例:-1234.456E+78
%f 有小数部分,但无指数部分,举例:123.456
%g 根据实际情况采用%e或%f格式(以获得更简洁的输出)
%G 根据实际情况采用%E或%f格式(以获得更简洁的输出)
字符串和byte切片类型:
%s 直接输出字符串或者[]byte
%q 双引号括起来的字符串
%x 每个字节用两字符十六进制数表示(使用小写a-f)
%X 每个字节用两字符十六进制数表示(使用大写A-F)
指针:
%p 0x开头的十六进制数表示