【问题标题】:Using info from two arrays to calculate contents of third array使用来自两个数组的信息来计算第三个数组的内容
【发布时间】:2021-02-22 00:15:03
【问题描述】:

我有一个包含一个国家/地区总人口的数组和另一个包含每个国家/地区的 COVID 病例总数的数组。我需要将病例数除以总人口并将百分比存储在第三个数组中。不过,我被困在语法上,直到明天我班上的任何人都无法进行外展。谁能帮我完成这一步?我尝试了很多不同的方法来获取新的百分比数组,但没有任何效果。我不能使用 int 作为百分比,因为我的教授希望它在小数点后有四位。示例或书中没有任何参考符合我正在尝试做的事情。

提前感谢您的建议!

int[] cases = {10_036_282, 8_553_657, 5_675_032, 1_856_292, 1_781_997, 1_381_218, 1_250_499, 1_216_747, 1_149_068, 967_825};

int[] population = {327_096_265, 1_352_647_786, 209_469_323, 64_990_511, 145_734_038, 46_692_858, 44_361_150, 67_141_684, 49_661_048, 126_190_788};
    

//必须根据病例数和人口计算病例百分比。

for (int i = 0; i < countries.length; i++){
    double percentage[i] = ((cases[i] / population[i]) * 100);  
}

【问题讨论】:

    标签: java arrays percentage


    【解决方案1】:

    除非另有明确说明,否则您应该使用双精度数来表示百分比。否则,cases[i] / population[i] 通常会导致 0

    double[] percentage = new double[...];
    percentage[i] = ((cases[i] / (double)population[i]) * 100); 
    

    【讨论】:

    • 谢谢!我也进行了更改,但仍然无法正常工作。
    • for (int i = 0; i
    • @Sunny303 你错过了人口分母上的双重演员
    【解决方案2】:

    为简化起见,计算刚刚放入 double 的所有内容,然后将计算出的值转换为 int 并存储在数组中。

    给你!

    import java.util.Queue; 
    import java.util.LinkedList; 
    import java.util.Arrays; 
    
    class Main{
        public static void main (String[] args) {
            int[] cases = {10_036_282, 8_553_657, 5_675_032};
            int[] population = {327_096_265, 1_352_647_786, 209_469_323};
            int[] percentage = new int[cases.length];
            for(int i = 0; i < cases.length; i++){
                double temp = ((double)cases[i] / (double)population[i] ) * 100;
                int pr = (int) temp;
                percentage[i] = pr;
            }
            System.out.println(Arrays.toString(percentage));
        }
    }
    

    【讨论】:

      【解决方案3】:

      你所有的数字都是整数,整数除以整数是整数,首先你需要将一个或所有值转换为double,其次你说有4个小数点所以你需要格式化你的十进制数如下:

      int[] cases = { 10_036_282, 8_553_657, 5_675_032, 1_856_292, 1_781_997, 1_381_218, 1_250_499, 1_216_747,
              1_149_068, 967_825 };
      
      int[] population = { 327_096_265, 1_352_647_786, 209_469_323, 64_990_511, 145_734_038, 46_692_858, 44_361_150,
              67_141_684, 49_661_048, 126_190_788 };
      
      double[] average = new double[cases.length];
      
      for (int i = 0; i < average.length; i++) {
          average[i] = ((cases[i] / (double)population[i]) * 100.0);
          average[i] = Double.parseDouble(String.format("%.4f", average[i]));
      }
      

      【讨论】:

        猜你喜欢
        • 2021-07-14
        • 1970-01-01
        • 2020-05-30
        • 2014-03-11
        • 2013-11-13
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 2021-04-26
        相关资源
        最近更新 更多