fmt.Sprintf的%f宽度问题
文档:studygolang.com/pkgdoc%9.2f 宽度9,精度2
对于浮点数,宽度设置输出总长度;精度设置小数部分长度(如果有的话)
var numDecimal float64 = 9666777888.888
str := ""
//%9.2f
str = fmt.Sprintf("%9.2f", numDecimal)
//这里输出 "9666777888.89" string
fmt.Printf("%q %T\n", str, str)
//%1.2f
str = fmt.Sprintf("%1.2f", numDecimal)
//这里输出 "9666777888.89" string
fmt.Printf("%q %T\n", str, str)
请问一下 文档里说宽度是输出的总长度,我理解的是指字符串长度,可输出结果不是这样,那实际是指什么意思呢
你对 你代码里%1.2f 的输出有疑问吗 ?宽度(最小总长度)是1 精度是2
9666777888 ,10个数字大于1 直接填充,如果是15,5个必要会填充的是空格;888,2f输出为89
宽度是输出字符数目的最小数量,如果必要会用空格填充。