为什么整数结果被舍入 - 没有小数? Xcode Swift

时间:2015-05-09 01:24:36

标签: string swift integer decimal

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

文本只返回一个数字,没有小数。如果答案应该是6.5,只得到6,显然我想改变它但不确定如何。 Haven在整数上工作很多。

2 个答案:

答案 0 :(得分:1)

看起来您正在执行纯整数运算,结果被分配给字符串值。编译器无法确定您是否希望拥有浮点值。 最好的办法是直接将字符串值转换为像这样的浮点数

(labelPassedData.text as NSString).floatValue

然后除以1600.0

答案 1 :(得分:0)

整数始终是一个没有小数的圆数。如果您需要带小数的数字,则需要Double

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

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

使用它:

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