Как разделить 2 двойника из текстовых полей в swift4 - PullRequest
0 голосов
/ 19 октября 2019

Я создал небольшое приложение для расчета идеального веса пользователей, я преобразовал строки из TextFields в Doubles, чтобы использовать их в своей работе, но я не получил правильный результат. Я получил это только в случае деления Int на Int, но я хочу получить результат как двойной.

@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))"
}

Ответы [ 3 ]

0 голосов
/ 19 октября 2019

Я делаю свой код очень простым, чтобы вы могли лучше понять мою проблему. это мой новый код:

@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 его дает мне другой результат

0 голосов
/ 20 октября 2019

Вы не можете рассчитать идеальный вес для человека, используя только его рост и вес, поэтому я предполагаю, что вы пытаетесь рассчитать ИМТ, и в этом случае ваша ошибка заключается в том, что вы используете квадратный корень вместо квадрата (мощностьиз 2). Таким образом, решение, если мое предположение верно, заключается в том, что вы должны использовать pow вместо sqrt

Вот моя модифицированная версия вашего кода с использованием pow вместо sort

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))"
}
0 голосов
/ 19 октября 2019

Попробуйте это

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

или, если вышеперечисленное не работает, возможно, ваши двойные значения находятся вне диапазона, используйте это

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

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