swift println使用字符串浮动

时间:2015-02-05 02:28:59

标签: string swift println

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

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

而不是Float

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

Float在调用

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

这只是理解你的话语意思的问题。 String是一种对象类型(结构)。 Float是一种对象类型(结构)。语法Thing(...)调用Thing 初始值设定项 - 它创建一个Thing类型的新对象,并调用初始化方法init(...)。当您说String(...)Float(...)时,这就是您正在做的事情。

好吧,有一个String init(format:)初始化程序(它实际上来自Foundation NSString,String被桥接),但是没有Float init(format:)初始化程序 - Float结构体没有#t}宣布任何此类事情。因此,在第二个代码中,您调用的是一种不存在的方法。

答案 2 :(得分:0)

您可以使用NSLog而不是println。 NSLog仍然在基础类中,并且可以灵活地指定所需的确切格式。