저는 Swift4로 코딩하고 있습니다. 포맷 된 숫자를 Int로 변환하는 방법이 있습니까? 계산을하기 위해 형식화 된 숫자의 가치를 얻는 방법?형식 번호의 값을 얻는 방법
let formattedNumber = "12,345,678,910" let newNumber = Int(formattedNumber)*2
저는 Swift4로 코딩하고 있습니다. 포맷 된 숫자를 Int로 변환하는 방법이 있습니까? 계산을하기 위해 형식화 된 숫자의 가치를 얻는 방법?형식 번호의 값을 얻는 방법
let formattedNumber = "12,345,678,910" let newNumber = Int(formattedNumber)*2
완벽하지.
extension String {
var intValue: Int {
let removedCharacter = self.characters.map{String($0)}.filter{Int($0) != nil}.joined()
print(removedCharacter)
if !(removedCharacter.isEmpty) {
return Int(removedCharacter)!
}
return 0
}
func toInt(multiplyBy : Int) -> String {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.groupingSeparator = ","
let formattedString = formatter.string(for: intValue * multiplyBy)
return formattedString!
}
}
print("12,345,678,910".toInt(multiplyBy: 2))
>> 24,691,357,820
구문 분석 할 모든 문자열에 항상 쉼표가있는 것으로 알려진 경우가 아니면 그룹화 구분 기호를','로 하드 코딩해서는 안됩니다. 그것은 모두 원래 형식화 된 문자열이 생성되는 방식에 따라 다릅니다. – rmaddy
는 먼저 쉼표를 제거해야합니다
let number = formattedNumber.replacingOccurrences(of: ",", with: "")
let newNumber = Int(number)! * 2
'Int (number)'에 대한 검사를 추가하십시오. –
* 형식 * 형식화 된 숫자가 채워지는 방식에 따라 달라질 수 있습니다. 우리에게 그 코드를 주려고 신경 써야할까요? – dfd
@dfd 아니요, 제 질문을 더 명확하게하고 싶었습니다. 내 코드에는 쓰레기가 너무 많아서이 정보가 충분히 명확하다고 생각했습니다 –
적절한 해결책은'NumberFormatter'를 사용하여 문자열을 숫자로 변환하는 것입니다. – rmaddy