java - 为什么我的代码使用提供的集合输出可笑的数字?我正在尝试 String.format

标签 java string.format

我使用这些数字:5,4,3.5,10,20,40,80,93.33,-1。它可以处理只有 5 个数字的简单数字,例如:5,4,3,2,1。到底是怎么回事?如果这是问题的话,我正在尝试使用 String.format 来缩短数字。你们是否注意到我的代码中有什么我可以做不同的事情来避免这种情况。这是提供的设置的输出:

The minimum is -1.0, the maximum is 2.147483647E9, and the average is 2.38609322E8
-238609317.00
-238609318.00
1908874325.00
-238609312.00
-238609302.00
-238609282.00
-238609242.00
-238609229.00
-238609323.00    

期望的输出

最小值为 3.5,最大值为 93.33,平均值为 31.978749999999998

得分 5.0 与平均值相比为 -26.978749999999998

得分 4.0 与平均值相比为 -27.978749999999998

得分 3.5 与平均值的比值是 -28.478749999999998

得分 10.0 与平均值相比为 -21.978749999999998

得分 20.0 与平均值相比为 -11.978749999999998

分数 40.0 是平均分 8.021250000000002

分数 80.0 与平均值的比值是 48.02125

分数 93.33 与平均值 61.35125 的差距

public static void main(String[] args)
{
  int count = 0;
  int arrayLength;
  double min = 99999;
  double max = 0;
  double average;
  double sum = 0;
  JOptionPane.showMessageDialog(null, "This program will display the average as well as each numbers distance from the average");
  // need to put loop here.
  arrayLength = IO.readInt("How many numbers will you be entering?");
  if (arrayLength <= 0 || arrayLength > 100)
  {
     JOptionPane.showMessageDialog(null, "Nothing entered, program will close.");
     System.exit(0);
  }
  double[] array = new double[arrayLength];
  for (int i = 0; i <arrayLength; i++)
  {
     array[i] = IO.readInt("Enter number: " + (i+1));
     count++;  
  } 
  for (int i = 0; i <arrayLength; i++)
  {
     sum = (array[i] + sum);
     if (array[i] <= min)
     {
        min = array[i];
     }
     if (array[i] > max)
     {
        max = array[i];
     }
  }
  average = (sum / arrayLength);
  System.out.println("The minimum is " + min + ", the maximum is " + max + ", and the average is " + average);
  double[] array2 = new double[arrayLength];
  for (int i = 0; i <arrayLength; i++)
  {
     array2[i] = (array[i] - average);
  }
  for (int i = 0; i <arrayLength; i++)
  {
     System.out.println(String.format("%.2f", array2[i]));
  }

}

最佳答案

我不知道当你执行 IO.readInt 并将其放入 double 时会发生什么,但它不可能是你想要的......

关于java - 为什么我的代码使用提供的集合输出可笑的数字?我正在尝试 String.format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818549/

相关文章:

java - 无法从 Java 主应用程序运行两个 Java FX 实例?

java - Eclipse 发现以前不存在的语法错误

java - 检查所有字母在字符串中至少出现一次

c# - 帮助 string.format - 构建 URL

java - 无法将字符串格式化为 Java 中的预期输出

java - 如何读取 java.util.InputMismatchException 堆栈跟踪

java - 无法运行正在访问 GlassFish v3 上的 EJB 的应用程序客户端

c# - 时间格式是24小时制吗?

.net - String.Format 与否?

java - 如何通过从列表中获取参数来使用 String.format 创建字符串