2016-12-17 51 views
0

我在這裏得到一個小數點時遇到問題。 我已經試過這段代碼,但結果是9.0,我怎樣才能得到0.9?從字符串獲取小數點

let distances = "0.9 mil"  
let stratr = distances.characters.split{$0 == " "}.map(String.init) 
       for item in stratr { 
        let components = item.components(separatedBy: NSCharacterSet.decimalDigits.inverted) 
        let part = components.joined(separator: "") 

        if let doubVal = Double(part) { 
         print("this is a number -> \(doubVal)") 
        } 

回答

0

您可以通過空格字符分隔字符串,然後使用第一個組件初始化Float。

let str = "0.9 mil" 
let decimal = str.components(separatedBy: " ").first.flatMap { Float($0) } 

print(decimal) // 0.9 
+1

這是非常容易使用,而且比我更好@Callam – AlbertWu

1

String的結構提供了可用於去除基於給定CharacterSet字符的實例方法。在這種情況下,您可以使用letterswhitespaces字符集來隔離您的十進制值,然後從中創建Decimal

let distances = "0.9 mil" 

let decimal = Decimal(string: distances.trimmingCharacters(in: CharacterSet.letters.union(.whitespaces))) 

if let decimal = decimal { 
    print(decimal) // Prints 0.9 
}