Swift 二进制运算符'&燃气轮机=';无法应用于类型为';Int';和';双倍';-错误不断出现,无法确定解决方案 导入UIKit func BMIcalc(体重:整数,身高:整数)->整数{ 让BMI=体重/身高 如果体重指数>25{ 打印(“您超重”) } 否则,如果BMI>18.5&&BMI18.5

Swift 二进制运算符'&燃气轮机=';无法应用于类型为';Int';和';双倍';-错误不断出现,无法确定解决方案 导入UIKit func BMIcalc(体重:整数,身高:整数)->整数{ 让BMI=体重/身高 如果体重指数>25{ 打印(“您超重”) } 否则,如果BMI>18.5&&BMI18.5,swift,Swift,BMI是一个Int,您将其与一个双进行比较: BMI>18.5 将其转换为正确的分区或直接使用类型Double: func BMIcalc(体重:双倍,身高:双倍)->{您无法比较Int和Double,因为BMI是Int类型,而数值文本18.5是Double类型。既然BMI不是整数,您应该将其声明为Double,以获得正确的result对于除法,您还需要将weight和height转换为Double,或者更好地将输入参数声明为Double,尤其是因为两者都应该是非整数 顺便说一句,你的数学也有缺

BMI是一个
Int
,您将其与一个
进行比较:
BMI>18.5

将其转换为正确的分区或直接使用类型
Double


func BMIcalc(体重:双倍,身高:双倍)->{

您无法比较
Int
Double
,因为
BMI
Int
类型,而数值文本
18.5
Double
类型。既然
BMI
不是整数,您应该将其声明为
Double
,以获得正确的result对于除法,您还需要将
weight
height
转换为
Double
,或者更好地将输入参数声明为
Double
,尤其是因为两者都应该是非整数

顺便说一句,你的数学也有缺陷,因为BMI=weight/height^2,其中体重以千克为单位,身高以米为单位,所以我也修正了你代码的这一部分

import UIKit

func BMIcalc (weight: Int, height: Int) -> Int {

    let BMI = weight/height

    if BMI > 25 {
        print ("you are overweight")
    }

    else if BMI > 18.5 && BMI < 25 {
        print("you are normal weight")

    else
    }

    return BMI
}

print (BMIcalc(weight: 60, height: 180))
func BMIcalc(体重:双倍,身高:双倍)->{
让BMI=体重/(身高*身高)
如果体重指数>25{
打印(“您超重”)
}
否则,如果BMI>18.5&&BMI<25{
打印(“您的体重正常”)
}
否则{
}
返回体重指数
}
打印(BMIcalc(体重:60,身高:1.80))/18.5185185

@MartinR你完全正确,我记错了,但现在已经修好了
func BMIcalc(weight: Double, height: Double) -> Double {
    let BMI = weight/(height*height)

    if BMI > 25 {
        print ("you are overweight")
    }
    else if BMI > 18.5 && BMI < 25 {
        print("you are normal weight")
    }
    else {
    }

    return BMI
}

print (BMIcalc(weight: 60, height: 1.80)) // 18.5185185185185