【问题标题】:Int behavior not expected非预期行为
【发布时间】:2015-05-09 01:24:35
【问题描述】:
Label.text = "\(((labelPassedData.text!.toInt()! * 
labelPassedData2.text!.toInt()!) + (labelPassedData10.text!.toInt()! * 
labelPassedData11.text!.toInt()!))/1600)"

Int 中的除法结果没有正确转换 Float 或 Double?

【问题讨论】:

    标签: string swift integer decimal


    【解决方案1】:

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

    (labelPassedData.text as NSString).floatValue
    

    然后除以 1600.0

    【讨论】:

    • 我返回“从 String? 转换为不相关类型 'NSString' 总是失败”
    【解决方案2】:

    整数始终是没有小数的整数。如果您需要带小数的数字,则需要 Double 之类的东西。

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

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

    像这样使用它:

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

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 2017-04-22
      相关资源
      最近更新 更多