我在操场以下几点:双字符串格式化疯狂
let a:CGFloat = 1.23
let b:Double = 3.45
let c:Float = 6.78
String(format: "(%2.2f|%2.2f|%2.2f)",a,b,c) // prints "(3.45|6.78|0.00)"
let d = NSMakePoint(9.87,6.54)
String(format: "(%2.2f|%2.2f)",d.x,d.y) // prints "(0.00|0.00)"
那么,为什么c:Float
呈现为0.00
。我可能需要f
以外的其他东西(这个格式化函数的苹果文件是 - 要礼貌 - 很薄,石灰变成零)。
但是:为什么CGFloat
首先被正确渲染,而NSPoint
中的两个CGFloat
被渲染为0.00
?
并且不:它不是Precision String Format Specifier In Swift及其吊坠的副本。
P.S.
String(format: "(%2.2f|%2.2f)",Double(d.x),d.y) // prints "(9.87|0.00)"
这是一个工作,但没有解释。
并有PPS:?是不是应该%2.2f
打印“9.87”,而不是“9.87”(2处为主导的数字似乎忽略数量指定%02.2f
还打印出“9.87”,而不是“09.87”