Int不会在逗号后显示数字

时间:2017-12-05 15:19:38

标签: swift string int

我想从一个字符串到一个int。我的问题是,我将获得一个int值,但它不会显示逗号后面的数字。如果字符串是-0,23,那么int将打印0.如何解决这个问题?请帮忙。

let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue

2 个答案:

答案 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