如何解决使用来自两个数组的信息来计算第三个数组的内容
我有一个包含一个国家总人口的数组,另一个包含了每个国家的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);
}
解决方法
除非另有明确指示,否则应使用双精度百分比。否则,案例[i] /人口[i]通常会导致0
double[] percentage = new double[...];
percentage[i] = ((cases[i] / (double)population[i]) * 100);
,
为简化起见,只需将所有内容都放入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));
}
}
,
所有数字均为整数,整数除以整数即为整数,首先需要将一个或所有值转换为double
,然后用4个小数点表示,因此您需要格式化十进制数字,如下所示:
int[] cases = { 10_036_282,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,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]));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。