为什么我在Swift中将Double转换为String不起作用?

u5rb5r59  于 2023-08-02  发布在  Swift
关注(0)|答案(4)|浏览(163)

我做错了什么?
我想把Swift Double转换成String。

let aaa: Double = 94.1
let bbb = String(format: "%d", aaa )
print("bbb:", bbb )

字符串
产品中心
手机:1717986918

ukxgm1gy

ukxgm1gy1#

格式说明符%d用于整数值。对于浮点,您需要使用%f。请注意,这将默认为6个小数位。
使用字符串插值代替旧的printf会简单得多。

let bbb = "\(aaa)"

字符串
您还可以在Double等类型上使用NumberFormatter或更新的formatted

p5cysglq

p5cysglq2#

对于像Double这样的浮点数,你需要使用%f说明符:

let aaa: Double = 94.1
let bbb = String(format: "%.1f", aaa)
print("bbb:", bbb)

字符串

ozxc1zmp

ozxc1zmp3#

或者你可以使用NumberFormatter

let double: Double = 94.1
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 2
if let string = formatter.string(for: double) {
    print(string) // 94.1
}

// or:
print(double.formatted()) // 94.1

字符串

ni65a41a

ni65a41a4#

要正确地将Double转换为具有一个小数位的String表示,您应该使用%0.1f格式说明符。你可以根据你的需要改变格式说明符。
下面是正确的代码:

let aaa: Double = 94.1
let bbb = String(format: "%.1f", aaa)
print("bbb:", bbb)

字符串
现在它应该显示“94.1”,正如预期的那样。

相关问题