我想问一个概念性的问题。我的代码是在控制台上打印一个5位小数的浮点值数组。为什么必须是String而不是Float? Ans [y]是float类型的数组。
println(String(format: "%.5f", Ans[y]))
而不是Float
println(Float(format: "%.5f", Ans[y]))
Float在调用
中给出了额外参数'format'的错误答案 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仍然在基础类中,并且可以灵活地指定所需的确切格式。