如何输出平均值的小数? [英] How to output the decimal in average?

查看:67
本文介绍了如何输出平均值的小数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在显示平均小数时遇到问题.它一直显示.00或.1.我尝试将其加倍,但仍得到相同的结果.此外,我想将输入的第一个整数包括在总和中,但我不知道如何.请帮助:

I have a problem in showing the decimals on the average. It keeps showing .00 or .1. I tried to put it in double, but I still get the same results.Also, I want to include the first integer that I input to the sum, but I have no idea how.Please help:

import java.io.*;
import java.util.*;

public class WhileSentinelSum 
{
static final int SENTINEL= -999;

public static void main(String[] args)
{
    // Keyboard Initialization
        Scanner kbin = new Scanner(System.in);

    //Variable Initialization and Declaration
        int number, counter;
        int sum =0;
        int average;

    //Input
        System.out.print("Enter an integer number: " );
        number = kbin.nextInt();
        counter=0;


    //Processing
    //Output
        while(number != SENTINEL)
        {
            counter++;
            System.out.print("Enter an  integer number: ");
            number = kbin.nextInt();
            sum += number;
        }

        if (counter !=0)
            System.out.println("\nCounter is: " + counter);
        else
            System.out.println("no input");

        average= sum/counter;
        System.out.println("The sum is " + sum);
        System.out.println("The average is " + average);


        System.out.println();

    }//end main
}//end class

推荐答案

即使您将 average 声明为 double sum counter 变量是 int ,因此Java仍使用

Even if you declared average to be double, the sum and counter variables are int, so Java still uses integer division before assigning it to average, e.g. 5 / 10 results in 0 instead of 0.5.

在除法之前强制将其中一个变量 double 强制浮点运算:

Cast one of the variables to double before the division to force a floating point operation:

double average;

...
average = (double) sum / counter;

您可以在进入while循环之前(如果不是前哨值)通过处理第一个数字来将其包括在计算中.

You can include the first number in your calculation by processing it before you go into the while loop (if it's not the sentinel value).

这篇关于如何输出平均值的小数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆