【问题标题】:Trying to multiply within the public static void. Any help is appreciated试图在公共静态空白中繁殖。任何帮助表示赞赏
【发布时间】:2019-10-31 06:20:48
【问题描述】:

因此,对于我的一项作业,我必须制作一个体重指数。当我问我的老师如何在公共 void main 中做数学时,他解释说我可以在 void main 中做。但是当我尝试时,它给了我“参数类型的运算符 * 未定义:字符串,整数”。

这是代码和说明:

(说明) 创建一个名为 Your_Name_BMI 的新 Java 项目。创建一个名为 BMI 的类,并使用 JOptionPane 对话框编写一个程序,计算并显示一个人的体重指数 (BMI)。 BMI 通常用于确定久坐不动的人的身高是否超重或体重不足。一个人的 BMI 使用以下公式计算:BMI = (体重*703) /(身高2) 其中体重以磅为单位,身高以英寸为单位。程序应该向用户显示消息,询问他们的体重和身高,并将这些值存储在适当命名的变量中。进行计算后,程序应显示一条消息,指示该人是否具有最佳体重、体重不足或超重。如果一个久坐不动的人的 BMI 介于 18.5 和 25 之间,则认为他的体重是最佳的。如果 BMI 小于 18.5,则认为此人体重不足。如果 BMI 值大于 25,则认为此人超重。

import javax.swing.JOptionPane;

public class Doswell_BMI
{
        //declaring important things
        static String weight;
        static String  height;
        static int multi;
        static int multi2;
        static String diagnosis;
        static int bmi;

        public static void main(String[] args)
        {
            weight=  JOptionPane.showInputDialog("What is your weight?");
            height= JOptionPane.showInputDialog("What is your height?");

            multi = 703;
            multi2 = 2;

            bmi = weight * multi / height * multi2;

            bmi = Integer.parseInt(diagnosis);


        }
}






【问题讨论】:

    标签: java


    【解决方案1】:

    是的,您不能将 Strings 相乘,因此您需要先转换为整数

    int w = Integer.valueOf (weight);
    

    【讨论】:

    • @martijn-p 我对您建议的编辑非常犹豫。其中,是的,代码确实使用了int,我的感觉是浮点数会更好。由于IntegerFloat 都扩展了Number,我希望让事情变得模棱两可。顺便说一句,感谢您的编辑,请告诉我您的想法。
    • 没错,但我编辑它的原因是因为有些人(至少是与我一起工作的人)喜欢使用通用 Number 类。并不是说这是一个巨大的变化,不可能理解或任何事情,但它可以被视为令人困惑。我确实同意潜在的浮动可能会更好,因为我们在这里谈论的是重量,有些人可能希望提供更精确的值(如果您处于体重不足/超重的边缘),所以我同意这可能是可能是“很高兴”
    【解决方案2】:

    字符串不能相乘,试试这个:

    bmi = Integer.valueOf(weight) * multi / Integer.valueOf(height) * multi2;
    

    【讨论】:

      【解决方案3】:

      我建议不要使用整数来计算 BMI。以磅和英寸为单位计算 BMI 的公式如下:

      如果您的身高为 5 英尺 5 英寸(65 英寸),体重为 150 磅,您的 BMI 计算方法如下:

      (150 磅/(65 英寸²))x 703 = 24.96。

      150 / 65*65 = 0.03550295858

      【讨论】:

        【解决方案4】:

        weight= JOptionPane.showInputDialog("你的体重是多少?");

        height= JOptionPane.showInputDialog("你的身高是多少?");

        这两个语句返回字符串值。 您不能对 JAVA 中的字符串变量执行数学运算。 因此,您必须使用

        将它们转换为整数

        或者,
        Integer.parseInt(weight) 这会将字符串转换为原始类型int

        Integer.valueOf(weight) 这会将字符串转换为包装类Integer的对象@

        bmi = 体重 * 倍数 / 身高 * 倍数;

        这个乘法不是很准确,因为您上面的要求是先将两个部分分别相乘,然后再相除

        最好写成bmi = (weight * multi) / (height * multi2)

        所以最后的语句是bmi = (weight.Integer.parseInt(weight) * multi) / (height.Integer.parseInt(height) * multi2)

        【讨论】:

          猜你喜欢
          • 2022-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-15
          相关资源
          最近更新 更多