Swift 二进制运算符'&燃气轮机=';无法应用于类型为';Int';和';双倍';-错误不断出现,无法确定解决方案 导入UIKit func BMIcalc(体重:整数,身高:整数)->整数{ 让BMI=体重/身高 如果体重指数>25{ 打印(“您超重”) } 否则,如果BMI>18.5&&BMI18.5
BMI是一个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,尤其是因为两者都应该是非整数 顺便说一句,你的数学也有缺
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