【发布时间】:2015-02-10 07:56:47
【问题描述】:
我在操场上有以下内容:
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 以外的其他东西(关于此格式化功能的Apples 文档是-礼貌起见-非常薄,酸橙为零)。
但是:为什么 CGFloat 首先正确渲染,而 NSPoint 中的两个 CGFloats 被渲染为 0.00?
不:它不是 Precision String Format Specifier In Swift 及其吊坠的复制品。
附:
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"
【问题讨论】:
标签: swift formatting double