Java - Sacar el porcentaje de una cantidad.

 
Vista:

Sacar el porcentaje de una cantidad.

Publicado por Bryan Cy (3 intervenciones) el 28/04/2019 07:41:40
Ayuda, como saco el porcentaje de mi suma total. Este es la única parte que me falta.
Este es el enunciado "Por compras menores a 150 dólares se hace un descuento de 7%, pero para compras a partir de 150 dólares el descuento es de 15%."
Me sale TODO, la Suma, pero quiero hacer el descuento y sale 0. Por favor díganme si estoy poniendo mal el IF.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package javaapplication8;
import java.util.Scanner;
import java.lang.String;
public class JavaApplication8 {
 
 
    public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    Scanner entrada1 = new Scanner(System.in);
    Scanner entrada2 = new Scanner(System.in);
    Scanner entrada3 = new Scanner(System.in);
    String[ ] producto = new String[10];
    double[ ] precio = new double[10];
    double[ ] tot = new double[10];
    double[ ] cant = new double[10];
    int co, x;
    double acum,acum1,acum2,total, porc;
    acum=0;
    acum1=0;
    acum2=0;
    porc=0;
 
 
    System.out.print("INGRESE EL NÚMERO DE PRODUCTOS: ");
    x=entrada.nextInt();
    for(co=0;co<x;co=co+1)
    {
        System.out.print("INGRESE EL NOMBRE DEL PRODUCTO N°"+(co+1)+": ");
        producto[co]=entrada1.next();
    }
    for(co=0;co<x;co=co+1)
    {
        System.out.print("INGRESE LA CANTIDAD DEL PRODUCTO -"+(producto[co])+"-: ");
        cant[co]=entrada2.nextDouble();
        acum=acum+cant[co];
    }
    for(co=0;co<x;co=co+1)
    {
        System.out.print("INGRESE EL PRECIO UNITARIO DEL PRODUCTO -"+(producto[co])+"-: ");
        precio[co]=entrada3.nextDouble();
        acum1=acum1+precio[co];
    }
    for(co=0;co<x;co=co+1)
    {
        tot[co]=cant[co]*precio[co];
        acum2=acum2+tot[co];
    }
 
    System.out.println("FORMULARIO");
    System.out.println("N°     PRODUCTO     CANTIDAD     PRECIO UNITARIO     TOTAL");
    for(co=0;co<x;co=co+1)
    {
       System.out.println((co+1)+"       "+(producto[co])+"          "+(cant[co])+"          "+(precio[co])+"              "+tot[co]);
    }
 
    System.out.println("----------------------------------------------------------------");
    System.out.println("---------------------------------------------- SUMA  "+acum2);
 
 
    if(acum2>=150)
        {
            porc=(15/100)*acum2;
        }
    else if(acum2<150)
    {
        porc=(7/100)*acum2;
    }
    System.out.print("------------------------------------------ DESCUENTO  "+(porc));
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sacar el porcentaje de una cantidad.

Publicado por Rodrigo (623 intervenciones) el 28/04/2019 12:35:02
Reemplaza la division de enteros por numeros reales. La division de entero da entero. 15/100 da 0.
Puedes hacer que el resultado sea real al reemplazar cualquiera de los 2 numeros por su equivalente real.
15.0/100
15/100.0
15.0/100.0

o bien haciendo la division tu mismo y poniendo el numero explicitamente

0.15
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Sacar el porcentaje de una cantidad.

Publicado por Bryan Cy (3 intervenciones) el 28/04/2019 21:16:38
Muchas gracias Rodrigo. Me ayudo mucho ahora si saca el descuento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Omar
Val: 77
Ha disminuido su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Sacar el porcentaje de una cantidad.

Publicado por Omar (24 intervenciones) el 15/05/2019 00:49:51
Ademas de lo que ya comentó Rodrigo, pongo mi granito de arena, puedes simplificar tus ciclos for es mucha perdida de memoria, lo puedes dejar de la sig manera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
System.out.print("INGRESE EL NÚMERO DE PRODUCTOS: ");
x=entrada.nextInt();
 
for(co=0;co<x;co=co++)
{
    System.out.print("INGRESE EL NOMBRE DEL PRODUCTO N°"+(co+1)+": ");
    producto[co]=entrada1.next();
 
    System.out.print("INGRESE LA CANTIDAD DEL PRODUCTO -"+(producto[co])+"-: ");
    cant[co]=entrada2.nextDouble();
    acum=acum+cant[co];
 
    System.out.print("INGRESE EL PRECIO UNITARIO DEL PRODUCTO -"+(producto[co])+"-: ");
    precio[co]=entrada3.nextDouble();
    acum1=acum1+precio[co];
 
    tot[co]=cant[co]*precio[co];
    acum2=acum2+tot[co];
}

Y aún puedes simplificar más con las variables, saludos, espero sirva de algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar