귀하의 문제를 대신 마침표 ","쉼표를 사용하려고하는 것이있다 "."
extension String {
var converted: String {
return fractionDigits()
}
var toDouble: Double {
return NSNumberFormatter().numberFromString(self)!.doubleValue
}
var toFloat: Float {
return NSNumberFormatter().numberFromString(self)!.floatValue
}
func fractionDigits(min:Int = 2, max:Int = 2)-> String {
let styler = NSNumberFormatter()
styler.minimumFractionDigits = min
styler.maximumFractionDigits = max
let converter = NSNumberFormatter()
converter.decimalSeparator = "."
if let result = converter.numberFromString(self) {
return styler.stringFromNumber(result)!
} else {
converter.decimalSeparator = ","
if let result = converter.numberFromString(self) {
return styler.stringFromNumber(result)!
}
}
return ""
}
}
"1,1222".converted // "1.12"
"2".converted // "2.00"
"1,1222".converted.toDouble // 1.12
"2".converted.toDouble // 2.0
"1,1222".converted.toFloat // 1.12000000476837
"2".converted.toFloat // 2.0
"1.1222".converted // "1.12"
"1.1222".converted.toDouble // 1.12
"1.254".converted.toFloat // 1.25
"1.254".fractionDigits(min: 1, max: 2) // "1.25"
"1.2".fractionDigits(min: 1, max: 2) // "1.2"
문제의 원인을 설명해 주시겠습니까? .를 원하지 않으면 int로 변환하십시오. –
값이 저장되면 예. 3,14를 입력하면 3.0으로 반올림됩니다. 나는 여전히 그것이 2 소수 십일수가되고 싶다 –
가능한 중복 [정밀 문자열 형식 지정자에서 스위프트] (http://stackoverflow.com/questions/24051314/precision-string-format-specifier-in-swift) –