2015-05-09 22 views
-1
Label.text = "\(((labelPassedData.text!.toInt()! * 
labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! * 
labelPassedData11.text!.toInt()!))/1600)" 

该文本只返回一个数字,没有小数。如果答案应该是6.5,只能得到6,显然我想改变,但不知道如何。没有用整数工作太多。为什么整数结果是四舍五入的 - 没有小数? Xcode Swift

回答

0

整数除法总是不带小数的一个整数。如果你需要一个带小数的数字,你需要类似Double

这个扩展可以帮助你从你的字符串的双重价值:

extension String{ 
    func toDouble() ->Double{ 
     return (self as NSString).doubleValue 
    } 
} 

使用它这样的:?

labelPassedData.text.toDouble() //Your text as Double 
1

看起来你正在执行纯粹的整数运算,并且结果被分配给一个字符串值。编译器无法确定您想要具有浮点值。 最好的办法是直接投的字符串值,以花车这样

(labelPassedData.text as NSString).floatValue 

然后1600.0

+0

我回来“从字符串转换为不相关类型的‘的NSString’总是失败' – escullz