我做错了什么?我想把Swift Double转换成String。
let aaa: Double = 94.1 let bbb = String(format: "%d", aaa ) print("bbb:", bbb )
字符串产品中心手机:1717986918
ukxgm1gy1#
格式说明符%d用于整数值。对于浮点,您需要使用%f。请注意,这将默认为6个小数位。使用字符串插值代替旧的printf会简单得多。
%d
%f
printf
let bbb = "\(aaa)"
字符串您还可以在Double等类型上使用NumberFormatter或更新的formatted。
Double
NumberFormatter
formatted
p5cysglq2#
对于像Double这样的浮点数,你需要使用%f说明符:
let aaa: Double = 94.1 let bbb = String(format: "%.1f", aaa) print("bbb:", bbb)
字符串
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
ni65a41a4#
要正确地将Double转换为具有一个小数位的String表示,您应该使用%0.1f格式说明符。你可以根据你的需要改变格式说明符。下面是正确的代码:
字符串现在它应该显示“94.1”,正如预期的那样。
4条答案
按热度按时间ukxgm1gy1#
格式说明符
%d
用于整数值。对于浮点,您需要使用%f
。请注意,这将默认为6个小数位。使用字符串插值代替旧的
printf
会简单得多。字符串
您还可以在
Double
等类型上使用NumberFormatter
或更新的formatted
。p5cysglq2#
对于像Double这样的浮点数,你需要使用
%f
说明符:字符串
ozxc1zmp3#
或者你可以使用
NumberFormatter
:字符串
ni65a41a4#
要正确地将Double转换为具有一个小数位的String表示,您应该使用%0.1f格式说明符。你可以根据你的需要改变格式说明符。
下面是正确的代码:
字符串
现在它应该显示“94.1”,正如预期的那样。