2015-09-28 79 views
0

有沒有簡單的方法來檢查文本字段輸入是整數還是十進制數?對於整數只是很容易:檢查輸入是否浮動在快速

func isNumber(text:String)->Bool 
{ 
    if let intVal = text.toInt() 
     {return true} 
    else 
     {return false} 
} 

但是,每當我有一個小數,我不知道如何驗證。 例如:

var str:String="11.5" 
if(isNumber(str)) 
    {println("yes")} 
else 
    {println("no")} 
    //prints "no" 
+0

順便說一下...... println()已更改爲print()。您可能希望儘快更新並適應Swift 2--除了其他方面,還有一些對字符串相關函數的更改。 – sean

回答

3

試試下面的代碼:

var str = "11.5" 
if let mFloat = Float(str) { 
    print("Your string is float.") 
}else { 
    print("else") 
} 

if let mInt = Int(str) { 
    print("Your string is integer.") 
}else { 
    print("Your string is not integer") 
} 

希望幫助!

+0

@Eric D.我顯示了兩個case來檢查一個字符串是float還是integer。你的情況是浮動和整數的工作。你的情況很好。 –

0

想通了。雖然很容易

var str = "87.8" 
var numberOfDots=0 
var hasLetterOrSymbol=false 

var char:Character="a" 

for char in str 
{ 


if(char == ".") 
    {numberOfDots++} 
if((char > "9") || (char < "0")) && (char != ".") 
    { 
     hasLetterOrSymbol=true 
    } 


    } 

if(numberOfDots>1) || (hasLetterOrSymbol==true) 
    { 
     println("wrong input. Please enter an integer or decimal number") 
    } 
else 
    { 
     var floatNumber = (str as NSString).floatValue 
     println(floatNumber) 
    }