预期的 Int 行为
Int behavior not expected
Label.text = "\(((labelPassedData.text!.toInt()! *
labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! *
labelPassedData11.text!.toInt()!))/1600)"
Int 中的除法结果没有正确转换 Float 或 Double?
看起来您正在执行纯整数运算,并且正在将结果分配给一个字符串值。编译器无法确定您想要一个浮点值。
最好的办法是像这样直接将字符串值转换为浮点数
(labelPassedData.text as NSString).floatValue
然后除以 1600.0
整数始终是不带小数的整数。如果你需要一个带小数的数字,你需要像 Double
.
这样的东西
此扩展程序将帮助您从字符串中获取双精度值:
extension String{
func toDouble() ->Double{
return (self as NSString).doubleValue
}
}
这样使用:
labelPassedData.text.toDouble() //Your text as Double
Label.text = "\(((labelPassedData.text!.toInt()! *
labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! *
labelPassedData11.text!.toInt()!))/1600)"
Int 中的除法结果没有正确转换 Float 或 Double?
看起来您正在执行纯整数运算,并且正在将结果分配给一个字符串值。编译器无法确定您想要一个浮点值。 最好的办法是像这样直接将字符串值转换为浮点数
(labelPassedData.text as NSString).floatValue
然后除以 1600.0
整数始终是不带小数的整数。如果你需要一个带小数的数字,你需要像 Double
.
此扩展程序将帮助您从字符串中获取双精度值:
extension String{
func toDouble() ->Double{
return (self as NSString).doubleValue
}
}
这样使用:
labelPassedData.text.toDouble() //Your text as Double