html/template 未显示带有精确小数位的 e+07 表示法的浮点值
html/template is not showing a float value with e+07 notation in exact decimal places
我正在尝试将值 1.8e+07
传递给结构 Student
的 TestVal
字段的示例。现在我希望这个 1.8e+07
值精确到小数位,但它没有这样做。如果值为 1.8e+05
,它能够以精确的小数位 (180000
) 显示该值。但如果大于e+05
则无法显示。
例子
package main
import (
"fmt"
"os"
"text/template"
)
// declaring a struct
type Student struct {
Name string
TestVal float32
}
// main function
func main() {
std1 := Student{"AJ", 1.8e+07}
// "Parse" parses a string into a template
tmp1 := template.Must(template.New("Template_1").Parse("Hello {{.Name}}, value is {{.TestVal}}"))
// standard output to print merged data
err := tmp1.Execute(os.Stdout, std1)
// if there is no error,
// prints the output
if err != nil {
fmt.Println(err)
}
}
请帮忙。
这只是浮点数的默认格式。 fmt
的包文档对此进行了解释: %v
动词是默认格式,对于浮点数意味着/恢复为 %g
即
%e
for large exponents, %f
otherwise. Precision is discussed below.
如果您不想要默认格式,请使用 printf
模板函数并指定您想要的格式,例如:
{{printf "%f" .TestVal}}
这将输出(在 Go Playground 上尝试):
Hello AJ, value is 18000000.000000
或使用:
{{printf "%.0f" .TestVal}}
哪个会输出(在Go Playground上试试):
Hello AJ, value is 18000000
查看相关内容:
我正在尝试将值 1.8e+07
传递给结构 Student
的 TestVal
字段的示例。现在我希望这个 1.8e+07
值精确到小数位,但它没有这样做。如果值为 1.8e+05
,它能够以精确的小数位 (180000
) 显示该值。但如果大于e+05
则无法显示。
例子
package main
import (
"fmt"
"os"
"text/template"
)
// declaring a struct
type Student struct {
Name string
TestVal float32
}
// main function
func main() {
std1 := Student{"AJ", 1.8e+07}
// "Parse" parses a string into a template
tmp1 := template.Must(template.New("Template_1").Parse("Hello {{.Name}}, value is {{.TestVal}}"))
// standard output to print merged data
err := tmp1.Execute(os.Stdout, std1)
// if there is no error,
// prints the output
if err != nil {
fmt.Println(err)
}
}
请帮忙。
这只是浮点数的默认格式。 fmt
的包文档对此进行了解释: %v
动词是默认格式,对于浮点数意味着/恢复为 %g
即
%e
for large exponents,%f
otherwise. Precision is discussed below.
如果您不想要默认格式,请使用 printf
模板函数并指定您想要的格式,例如:
{{printf "%f" .TestVal}}
这将输出(在 Go Playground 上尝试):
Hello AJ, value is 18000000.000000
或使用:
{{printf "%.0f" .TestVal}}
哪个会输出(在Go Playground上试试):
Hello AJ, value is 18000000
查看相关内容: