我想从一个字符串到一个int。我的问题是,我将获得一个int值,但它不会显示逗号后面的数字。如果字符串是-0,23,那么int将打印0.如何解决这个问题?请帮忙。
let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue
答案 0 :(得分:2)
您可能需要使用NumberFormatter
来设置您的语言环境。在美国,小数分隔符是一个句点。 ("。")逗号被视为分隔符。
另外,假设您处于小数分隔符为逗号的区域设置中,转换为整数将截断小数分隔符之后的部分。
以下代码的代码应该有效:
var str = "-0,23"
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.locale = Locale(identifier: "fr_FR")
let aVal = formatter.number(from: str)?.doubleValue
(我使用法国的法语作为语言环境,因为法国使用逗号作为小数分隔符。)
请注意,您需要仔细考虑数字字符串的来源,以便决定如何处理区域设置。如果这些是用户输入的字符串,那么您应该使用带有设备默认语言环境的数字格式化程序。这样一来,欧洲用户就可以使用逗号作为小数分隔符,而美国用户可以使用句点作为小数分隔符,两者都可以使用。
答案 1 :(得分:1)
你需要使用一个浮点数,整数不要在逗号后面加数字 https://developer.apple.com/documentation/swift/float