String 不应出现Int行为

String 不应出现Int行为,string,swift,integer,decimal,String,Swift,Integer,Decimal,除法结果为Int,但没有正确转换浮点或Double?看起来您在执行纯整数运算,结果被分配给一个字符串值。编译器不可能知道您想要一个浮点值。 最好的办法是直接将字符串值强制转换为如下浮点数 Label.text = "\(((labelPassedData.text!.toInt()! * labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! * labelPassedData11.text!.toI

除法结果为Int,但没有正确转换浮点或Double?

看起来您在执行纯整数运算,结果被分配给一个字符串值。编译器不可能知道您想要一个浮点值。 最好的办法是直接将字符串值强制转换为如下浮点数

Label.text = "\(((labelPassedData.text!.toInt()! * 
labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! * 
labelPassedData11.text!.toInt()!))/1600)"

然后除以1600.0,整数总是一个不带小数的整数。如果你需要一个带小数的数字,你需要一个类似于双精度的

此扩展将帮助您从字符串中获取双精度值:

(labelPassedData.text as NSString).floatValue
这样使用:

extension String{
    func toDouble() ->Double{
        return (self as NSString).doubleValue
    }
}
我返回“从字符串强制转换为不相关的类型‘NSString’总是失败”
labelPassedData.text.toDouble() //Your text as Double