如何在swift4中从文本字段中除以2个双精度

如何在swift4中从文本字段中除以2个双精度,swift,double,Swift,Double,我创建了一个用于计算用户完美权重的小应用程序,我将文本字段中的字符串转换为双倍,以便在我的操作中使用,但没有得到正确的结果。我得到它只是在整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除 @IBAction func CalculPerfectWeight(_ sender: Any) { let UserWeightValue = userWeight.text let dbValue1

我创建了一个用于计算用户完美权重的小应用程序,我将文本字段中的字符串转换为双倍,以便在我的操作中使用,但没有得到正确的结果。我得到它只是在整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除整除

@IBAction func CalculPerfectWeight(_ sender: Any)

{
    let UserWeightValue = userWeight.text
    let dbValue1 = NSString(string: UserWeightValue!).doubleValue

    let UserLengthVAlue = userLength.text
    let dbValue2 = NSString(string: UserLengthVAlue!).doubleValue

    let squareRoot: Double = sqrt(dbValue2)
    let PerfectWeight: Double? = Double(dbValue1 / squareRoot)

   PerfectWeightLbl.isHidden = false
   BackButtOut.isHidden = false

    PerfectWeightLbl.text = "Your Perfect Weight is : \(String(describing: PerfectWeight))"
}
试试这个

 let result = firstValue.dividing(by: secondValue)
 print(result)
或者,如果上述方法不起作用,则可能是您的双精度值超出范围,然后使用此方法

             let firstValue = NSDecimalNumber(firstValue)
             let secondValue = NSDecimalNumber(secondValue)

             let result = firstValue.dividing(by: secondValue)
 print(result)

我使我的代码非常简单,让您了解更多关于我的问题。这是我的新代码:

@IBAction func CalculPerfectWeight(_ sender: Any)

{
    /* This is My Variables 
      @IBOutlet weak var userWeight: UITextField!
      @IBOutlet weak var userLength: UITextField!
      @IBOutlet weak var PerfectWeightLbl: UILabel!
    */

    PerfectWeightLbl.isHidden = false
    BackButtOut.isHidden = false

    let UserWeightInput: Double? = Double(userWeight.text!)
    let UserLengthInput: Double? = Double(userLength.text!)
    let ThePerfectWeight: Double = UserLengthInput! * UserLengthInput! / UserWeightInput!
    PerfectWeightLbl.text = "Your Perfect Wight's \(ThePerfectWeight)"
}
我的结果应该是双倍的,例如:

用户正常体重为:75 使用长度为:1.77 我想用这个等式来计算完美重量:

完美重量=长度x长度/正常重量,也就是说:完美重量=1.77 x 1.77/75=23.93


但是xcode It’s给我另一个结果

你不能仅仅用一个人的身高和体重来计算一个人的完美体重,所以我猜你是在试图计算BMI,在这种情况下,你的错误是你使用的是平方根,而不是2的平方幂。因此,如果我的猜测是正确的,那么解决方案是应该使用pow而不是sqrt

这是我使用pow而不是sort修改的代码版本


仅仅说你“没有得到正确的结果”是没有帮助的。文本字段中的输入值是什么?计算了哪些值,您希望得到什么结果?您是否尝试调试或使用任何print语句来了解发生了什么?十进制数字是如何与您的区域设置一起输入的,是否使用点。或十进制,作为小数分隔符?DoubletxtField1.text??0.00/DoubletxtField2.text??000@Maddy可能的除名zero@JoakimDanielson哦,对不起。你是对的。DoubletxtField1.text??0.00/DoubletxtField2.text??1.00不要发布更多信息作为答案,而是更新你的问题,不要只说你得到了另一个结果,包括不正确的结果。嘿,谢谢你的帮助,我修改了我的代码,但我没有得到任何结果。文本标签没有更改。是否尝试调试代码或添加一些打印语句?我调试代码。我用我的更改了标签文本字符串,我也做了所有的事情,但没有结果。我不明白没有结果意味着什么。如果使用原始代码,但如前所述将sqrt更改为pow,会发生什么?
if let weight = Double(userWeight.text!), let length = Double(userLength.text!) {
    let result = weight / pow(length, 2.0)
    PerfectWeightLbl.text = "Your BMI is : \(String(describing: result))"
}