Ios 如何在swift中使用解析字符串?

Ios 如何在swift中使用解析字符串?,ios,iphone,arrays,string,swift,Ios,Iphone,Arrays,String,Swift,这里的一个问题是,如果我使用解析字符串作为计算器程序的结果 4.5 * 5.0 = 22.5 如何在此处使用拆分将小数部分与结果分开?使用modf从结果中提取小数部分 目标-C: double integral = 22.5; double fractional = modf(integral, &integral); NSLog(@"%f",fractional); var integral:Double = 22.5; let fractional:Double = mo

这里的一个问题是,如果我使用解析字符串作为计算器程序的结果

4.5 * 5.0 = 22.5 

如何在此处使用拆分将小数部分与结果分开?

使用
modf
从结果中提取
小数部分

目标-C

double integral = 22.5;
double fractional = modf(integral, &integral);
NSLog(@"%f",fractional);
 var integral:Double  = 22.5;
 let fractional:Double = modf(integral,&integral);
 println(fractional);
Swift

double integral = 22.5;
double fractional = modf(integral, &integral);
NSLog(@"%f",fractional);
 var integral:Double  = 22.5;
 let fractional:Double = modf(integral,&integral);
 println(fractional);

只需要浮点的双精度整数部分

只需要
double
中的
integer
值,然后

 let integerValue:Int = Int(integral)
 println(integerValue)
 let integerValue:Float = Float(integral)
 println(integerValue)
只需要
float
中的
integer
值,然后

 let integerValue:Int = Int(integral)
 println(integerValue)
 let integerValue:Float = Float(integral)
 println(integerValue)

假设您仅使用字符串:

var str = "4.5 * 5.0 = 22.5 "

// Trim your string in order to remove whitespaces at start and end if there is any.
var trimmedStr = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
// Split the string by " " (whitespace)
var splitStr = trimmedStr.componentsSeparatedByString(" ")

// If the split was successful, retrieve the last past (your number result)
var lastPart = ""
if let result = splitStr.last {
    lastPart = result
}

// Since it's a XX.X number, split it again by "." (point)
var splitLastPart = lastPart.componentsSeparatedByString(".")

// If the split was successful, retrieve the last past (your number decimal part)
var decimal = ""
if let result = splitLastPart.last {
    decimal = result
}

而不是使用
count
测试,然后是
last
语法:
如果let result=splitStr.last{lastPart=result}
,则应使用
<代码>
是危险的,只有在没有实际替代品的情况下才应使用。NP。另外,请查看类似于字符串分隔的组件的
Swift.split
如果let result=last(split(str){$0==”}),let decimal=last(split(result){$0=“”}{println(decimal)}
我的意思是,如果结果是22.0,我只想要22而不是22.0,当然,如果是22.5,0.5将作为22.5出现,但是22.0中的0对于22.0的结果,或者当键入数字22.0而不是22时,不应该在点的右侧?我的意思是,如果结果是22.0,我只想要22而不是22.0,当然,如果它是22.5,0.5将作为22.5存在,但是22.0中的0对于22.0的结果,或者当键入数字22.0而不是22时,不应该在点的右侧?