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
语法:如果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时,不应该在点的右侧?