当前位置: 首页 > 知识库问答 >
问题:

转换为双

包谭三
2023-03-14

更新:我已经尝试将getCalcMean()和calcMean;我理解这个错误的含义,但我不知道如何修复它,因为最终结果需要是double,我认为java可以计算double和int并得到double。我做错了什么?

我正在计算键入999后的总数平均值,但它一直显示为0,我不知道为什么。

有人能告诉我如何让我的getCalcMean()方法将平均值显示为numTotal/count吗?

---班级计划---

public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    int num = 0;
    int count = 1;
    Math math1 = new Math(num, count);
    while (num != 999) {
        num = kb.nextInt();
        if (num != 999) {
            math1.adder(num);
            count ++;
            System.out.println("Total till now:" + math1.getNumTotal());
        }
    }
    math1.setCount(count);
    System.out.println(math1.getNumTotal());
    System.out.println(math1.calcMean(math1.getCalcMean()));
    //System.out.println(math1.getNum());
    kb.close();
    /*Scanner kb = new Scanner(System.in);
    String input = kb.nextLine();
    Scanner scn = new Scanner(input);
    int num = scn.nextInt();
    Math math1 = new Math(num,0);
    while(num != 999){
        math1.adder(num);
        input = kb.nextLine();
    }

    System.out.println(math1.getNumTotal());*/
} //main

}

----数学课----

public class Math {

private int num;
private int numTotal;
private double mean;
private int count;

/*public Math(int num, int numTotal){
this.num = num;
}*/

public Math(int num, int count) {
    this.num = num;
    this.count = count;
}

//get//
public int getNum(){
    return this.num;
}

public int getNumTotal(){
    return this.numTotal;
}

public double getCalcMean(){
    return this.mean;
}

//set//

public void setNumTotal(int value){
    this.numTotal = value;
}

public void setNum(int value){
    this.num = value;
}

public void setCalcMean(double value){
    this.mean = value;
}

public void setCount(int value){
    this.count = value;
}
//other
/*public void adder(int num){
numTotal = numTotal + num;
}*/

public void adder(int num) {
    this.num = num;
    numTotal = numTotal + this.num;
}
//added after//
public double calcMean(int num){
    this.numTotal = numTotal;
    mean = numTotal / this.count;
    return mean;
}

}

共有1个答案

冯飞鹏
2023-03-14
    代码中的< li> counter 没有意义,因为您从未将它传递给Math对象。 < Li > < code > math 1 . getcalcmean()将返回Math对象中的< code>mean,但< code>mean尚未计算。

建议:

  1. 为Math类中的计数器添加getter和setter
  2. 计算getCalcMean()方法中的平均值

请参阅下面的代码。我假设您使用999作为结束标志,所以没有考虑它。计数器初始化为0。

import java.util.Scanner;

public class Program {
public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    int num = 0;
    int counter = 0;
    Math math1 = new Math(num, counter);
    while (num != 999) {
        num = kb.nextInt();
        if (num != 999) {
            math1.adder(num);
            counter ++;
            math1.setCounter(counter);
            System.out.println("Total till now:" + math1.getNumTotal());
        }
    }
    System.out.println(math1.getNumTotal());
    System.out.println(math1.getCalcMean());
    //System.out.println(math1.getNum());
    kb.close();
    /*Scanner kb = new Scanner(System.in);
    String input = kb.nextLine();
    Scanner scn = new Scanner(input);
    int num = scn.nextInt();
    Math math1 = new Math(num,0);
    while(num != 999){
        math1.adder(num);
        input = kb.nextLine();
    }

    System.out.println(math1.getNumTotal());*/
} //main
}

还有数学课。

public class Math {

private int num;
private int numTotal;
private int mean;
private int counter;

/*public Math(int num, int numTotal){
this.num = num;
}*/

public Math(int num, int counter) {
    this.num = num;
    this.counter = counter;
}

//get//
public int getNum(){
    return this.num;
}

public int getNumTotal(){
    return this.numTotal;
}

public int getCalcMean(){
    mean = numTotal / this.counter;
    return mean;
}

public int getCounter(){
    return this.counter;
}

//set//

public void setNumTotal(int value){
    this.numTotal = value;
}

public void setNum(int value){
    this.num = value;
}

public void setCalcMean(int value){
    this.mean = value;
}

public void setCounter(int counter){
    this.counter = counter;
}

//other
/*public void adder(int num){
numTotal = numTotal + num;
}*/

public void adder(int num) {
    this.num = num;
    numTotal = numTotal + this.num;
}
//added after//
public void calcMean(int num){
    mean = numTotal / this.counter;
}
}
 类似资料:
  • 问题内容: 我怎样才能投来? 问题答案: 您必须创建一个新的。

  • 问题内容: 我仍然是Java的初学者,所以我对线程和并发的了解还很少。但是,由于java.util.Timer和TimerTask存在问题,我希望能够将ScheduledThreadPoolExecutor用作计时器。我对线程的创建非常感兴趣,并且知道我将在几周内学习它们。但是,如果可以的话,有人可以给我一个基本的示例,说明如何使用util.timer将当前的迷你测试程序转换为ScheduledT

  • 我想把下面的代码转换成Java8s。

  • 最近,我浏览了一些网站,将中缀转换成前缀符号,最后我被卷了起来。 我已经给出了我所做的步骤。。 例:-(1(2*3))(5*6)(7/8) 方法1:-(无需任何算法的手动转换):- 方法2:- 根据现场情况http://scanftree.com/Data_Structure/infix-to-prefix 所以,在这里我完全被绞死了。 请任何人提供以下方面的信息:- 关于我在以上2种方法中哪里出

  • 问题内容: 如何将String 列表转换为数组?以下代码返回错误。 错误: 问题答案: 你要 有关文档,请参见此处,请注意,您也可以以填充已传递数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,也许当您打印阵列时,您更喜欢 因为那将打印实际的元素。

  • 我们正在获取具有以下字段的订单数据(仅显示相关字段) 具有NULLoriginal_orderid的订单可以被认为是父订单 其中一些父母订单可能有子订单,子订单的original_orderid映射到父母的订单。 子顺序可以产生另一个子顺序,如图像所示,带有颜色编码。 与原始文本相同的数据: 作为转换,我们需要将所有子节点映射到它们的原始父节点(original_orderid为NULL),并获得