在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
fmt.Printf在程序中使用%f来格式化所需的值 看起来我们的值被四舍五入到了一个合理的数。但小数点后仍显示了6位,这对我们当前的需要来说实在是太多了。 对于这种情况,格式化动词允许你指定格式化值的宽度。 假设我们想在纯文本表中格式化一些数据。我们需要确保格式化的值填充最少数量的空格,以便列能够正确对齐。 可以在格式化动词的百分号后面指定最小宽度。如果匹配该动词的参数比最小宽度短,则将使用空格进行填充,直到达到最小宽度为止。 你可以使用值宽度来指定浮点数的精度(显示的位数)。格式如下: 整个数的最小宽度包括数字位和小数点。如果包括的话,较短的数将在开始处填充空格,直到达到这个宽度。如果省略的话,就不会添加任何空格。 小数点后的宽度是要显示的小数位数。如果给出更精确的数字,它将被四舍五入(向上或向下)以适应给定的小数位数。下面是运行中的各种宽度值的快速演示: 最后一种格式是"%.2f",将允许我们取任意精度的浮点数,并将它们四舍五入到小数点后两位。(它也不会做任何不必要的填充。)
fmt.Sprintffmt.Sprintf格式化在逻辑中非常常用。使用格式化函数,要注意写法: fmt.Sprintf(格式化样式, 参数列表…)
在 Go 语言中,格式化的命名延续C语言风格: package main 代码输出如下: 已采集2个药草, 还需要8个完成任务 "月球基地" 3.14159 true 使用'%+v' &{Name:rat HP:150} 使用'%#v' &struct { Name string; HP int }{Name:"rat", HP:150} 使用'%T' *struct { Name string; HP int }C语言中, 使用%d代表整型参数 fmt.Sprintf("%0*d", 8, 123) 结果是 00000123 %0*d % 表示这个是一个 格式控制串 0 这个填充字符,表示当输出长度不足指定长度时候, 用 0填充不足的部分 * 是占位符,表示具体的宽度由后面的参数来指定输出宽度 d 这个表示输出整数 fmt.Sprintf( "%0*d", 5, 123 ); 也等价于 fmt.Sprintf("%05d",123);结果也是 00123
|
请发表评论