문자열이 두 개로 변환되어야하는 "$4,102.33"
입니다. 이것은 항상 미국이 될 것입니다. 내 유일한 방법은 $
및 ,
을 제거하고 이중으로 변환하는 해킹입니다. NSFormatter
처럼 보일뿐, 통화가 아닌 통화로 변환 할 수 있습니다. $
및 ,
을 제거하는 것보다 더 좋은 방법이 있습니까? 그것을 double로 변환하기 전에?Swift 변환 통화 문자열을 double로 변환
감사합니다.
문자열이 두 개로 변환되어야하는 "$4,102.33"
입니다. 이것은 항상 미국이 될 것입니다. 내 유일한 방법은 $
및 ,
을 제거하고 이중으로 변환하는 해킹입니다. NSFormatter
처럼 보일뿐, 통화가 아닌 통화로 변환 할 수 있습니다. $
및 ,
을 제거하는 것보다 더 좋은 방법이 있습니까? 그것을 double로 변환하기 전에?Swift 변환 통화 문자열을 double로 변환
감사합니다.
NumberFormatter
은 문자열로 변환하거나 변환 할 수 있습니다. 또한 Double
은 2를 기준으로 특정 숫자를 정확하게 나타낼 수 없습니다. Decimal
을 사용하면 속도가 느리지 만 안전합니다. 특정 통화의 NSNumber로 문자열로 변환하는
let str = "$4,102.33"
let formatter = NumberFormatter()
formatter.numberStyle = .currency
if let number = formatter.number(from: str) {
let amount = number.decimalValue
print(amount)
}
은 간단합니다 :
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "en_US")
let number = formatter.number(from: string)
은 (preferred) 더블 또는 소수로 전화 번호를 얻을 수 있습니다 후 직접 :
let doubleValue = number?.doubleValue
let decimalValue = number?.decimalValue
사이드 노트, 통화에'Double'을 사용하지 마십시오 : http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency – Alexander
'NSNumberFormatter'는 쉽게 해당 문자열을 변환합니다 마비 된 제대로 설정했다면 귀하의 질문에'NSNumberFormatter'의 사용 시도를 보여주십시오. – rmaddy
Argh - .string 메서드 만 보았습니다. .number 메서드가 있다는 것을 깨닫지 못했습니다. :-( – user441058