swift println float 使用字符串

swift println float using string

我想问一个概念性的问题。我的代码是将一组 5 位小数的浮点值打印到控制台上。为什么必须是 String 而不是 Float? Ans[y] 是一个 float 类型的数组。

 println(String(format: "%.5f", Ans[y]))

而不是浮动

println(Float(format: "%.5f", Ans[y]))

Float 在 call

中给出额外参数 'format' 的错误

这只是理解你的话是什么意思的问题。字符串是一种对象类型(结构)。 Float 是一种对象类型(一种结构)。语法 Thing(...) 调用一个 Thing initializer - 它创建一个 Thing 类型的新对象并调用一个初始化方法 init(...)。当你说 String(...)Float(...).

时,这就是你在做的事情

嗯,有一个 String init(format:) 初始化器(它实际上来自 Foundation NSString,String 被桥接到它),但是没有 Float init(format:) 初始化器 - Float 结构没有宣布任何该等事情。所以在第二个代码中你调用了一个不存在的方法。

您可以使用 NSLog 代替 println。 NSLog 仍处于基础 class 并且可以灵活地指定您需要的确切格式。

您可以使用 map() 将 Float 数组格式化为字符串数组。顺便说一句,你应该给它起一个以小写字母开头的名字。尝试如下操作:

let floatArray:[Float] = [1.23456,3.21098,2.78901]
let formattedArray = floatArray.map{String(format: "%.5f", [=10=])}
println(formattedArray)  // "[1.23456, 3.21098, 2.78901]"