我得到了这个值数组
float Guy_A [] = {194,180,221,432,820,200,312,177,190, 70};
我为“总值”写了这个“for”
for (int i=0; i < Guy_A.length;i++)
{ A += Guy_A[i];}
之后我想用这个
进行中点分割float pcnt_a = A * 100 /vt;
//the vt is declared above as a float and it value is 10489
之后我使用以下命令运行文件:
System.out.println("Guy A has "+A+" votes");
System.out.println("His Average is"+df.format(pcnt_a)+" %\n");
问题是第一行返回'2796.0'(实际总数) 但第二个只返回0.00'%' // df.format为0.00,跳过其他6位十进制数。
我尝试过使用double和int,但它仍然显示0.0。 有人可以解释一下我能用这件事做些什么......
//完整代码:
public class Estadisticas { //float A = 2796;
float Candidato_A [] = {194,180,221,432,820,200,312,177,190, 70};
float Candidato_B [] = { 48, 20, 90, 50, 61,100, 99, 87, 77,122};
float Candidato_C [] = {206,320,140,821,946,155,501,075,005,12};
float Candidato_D [] = { 45, 16, 20, 14, 18,355,122,178,501,117};
float Candidato_E [] = {155,501,075,178,501,117,700,55,78,12};
float vt = 10489;
boolean no_win;
public void totalVotos(){
for (int i=0; i<Candidato_A.length;i++){
A += Candidato_A[i]; }
for (int i=0; i<Candidato_B.length;i++){
B += Candidato_B[i]; }
for (int i=0; i<Candidato_C.length;i++){
C += Candidato_C[i]; }
for (int i=0; i<Candidato_D.length;i++){
D += Candidato_D[i]; }
for (int i=0; i<Candidato_E.length;i++){
E += Candidato_E[i];
}
}
float A; float B; float C; float D; float E;
float pcnt_a = A * 100 /vt;
float pcnt_b = B * 100 /vt;
float pcnt_c = C * 100 /vt;
float pcnt_d = D * 100 /vt;
float pcnt_e = E * 100 /vt;
public void imprimeDatos(){
DecimalFormat df= new DecimalFormat("0.00");
System.out.println("\n\n -- Estadisticas de las elecciones --\n");
System.out.println("El Candidato A obtuvo "+A+" votos");
System.out.println("Su Porcentaje de votos fue de "+df.format(pcnt_a)+" %\n"); System.out.println("El Candidato B obtuvo "+B+" votos");
System.out.println("Su Porcentaje de votos fue de"+df.format(pcnt_b)+" %\n");
System.out.println("El Candidato C obtuvo"+C+" votos");
System.out.println("Su Porcentaje de votos fue de"+df.format(pcnt_c)+" %\n");
System.out.println("El Candidato D obtuvo"+D+" votos");
System.out.println("Su Porcentaje de votos fue de"+df.format(pcnt_d)+" %\n");
System.out.println("El Candidato E obtuvo"+E+" votos");
System.out.println("Su Porcentaje de votos fue de"+df.format(pcnt_e)+" %\n");
if(A>B && A>C && A>D && A>E){
System.out.println("-- El Candidato A obtuvo la mayor cantidad de votos --\n");
} else{
if(B>A && B>C && B>D && B>E){
System.out.println("-- El Candidato B obtuvo la mayor cantidad de votos --\n");
} else{
if(C>B && C>A && C>D && C>E){
System.out.println("-- El Candidato C obtuvo la mayor cantidad de votos --\n");
} else{
if(D>B && D>C && D>A && D>E){
System.out.println("-- El Candidato D obtuvo la mayor cantidad de votos --\n");
} else{
if(E>B && E>C && E>D && E>A){
System.out.println("-- El Candidato E obtuvo la mayor cantidad de votos --\n");
}
}
}
}
}
}
对不起西班牙语,现在我需要这个大学的项目。
答案 0 :(得分:1)
看起来A
和pcnt_a
都是字段。当A
设置为pcnt_a
时,A * 100 /vt
为0。在运行计算pcnt_a
的求和循环后,您需要计算A
。
public void totalVotos() {
for (int i = 0; i < Candidato_A.length; i++) {
A += Candidato_A[i];
}
for (int i = 0; i < Candidato_B.length; i++) {
B += Candidato_B[i];
}
for (int i = 0; i < Candidato_C.length; i++) {
C += Candidato_C[i];
}
for (int i = 0; i < Candidato_D.length; i++) {
D += Candidato_D[i];
}
for (int i = 0; i < Candidato_E.length; i++) {
E += Candidato_E[i];
}
pcnt_a = A * 100 / vt;
pcnt_b = B * 100 / vt;
pcnt_c = C * 100 / vt;
pcnt_d = D * 100 / vt;
pcnt_e = E * 100 / vt;
}
答案 1 :(得分:0)
在实例化df时,你没有提到你要分配的值。试试这个:DecimalFormat df = new DecimalFormat(&#34; ####。00&#34;);
答案 2 :(得分:0)
你的格式化程序是错的吗?确保格式化程序中的格式字符串(我假设df表示十进制格式化程序)实际上表示零的数量,而不仅仅是字符串“0.0”。我不知道DF是什么。