假设我有一个包含2个项目的数组,其类型为string/float.如何在没有浮动项目的科学记号的情况下将它们打印在一起.
例如:
package main
import (
"fmt"
)
func main() {
values := []interface{}{"mydata", 1234567890.123}
for _, v := range values{
fmt.Printf("%v\n", v)
}
}
Run Code Online (Sandbox Code Playgroud)
输出将是
MYDATA
1.234567890123e + 09
我想要的是
MYDATA
1234567890.123
的打包文档fmt对此进行了说明:%v动词是默认格式,对于浮点数,它表示/还原%g为
%e用于大指数,否则%f。精度将在下面讨论。
如果您始终想要“小数点但没有指数,例如123.456”,请%f明确使用。
但是您只能将其用于浮点数,因此必须检查要打印的值的类型。为此,您可以使用类型开关或类型断言。
例:
switch v.(type) {
case float64, float32:
fmt.Printf("%f\n", v)
default:
fmt.Printf("%v\n", v)
}
Run Code Online (Sandbox Code Playgroud)
输出(在Go Playground上尝试):
mydata
1234567890.123000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8429 次 |
| 最近记录: |