JavaScript - Calculo

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 53 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Calculo

Publicado por Lucas (2 intervenciones) el 10/04/2019 13:35:05
Hola amigos.
Soy novato en el tema y tengo una pequeña duda.
En el código que os expongo en el case 1 cuando la cantidad es mayor de 4999 me sigue aplcando el porcentaje e igual en los demas cases.
No encuentro el error.

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
71
72
73
74
75
76
77
78
79
80
81
82
83
$(function(){
 
	calc();
 
	$('#calc_plan').on('change', calc);
	$('#inv_amount').bind('change keyup', calc).on('keypress', isNumberKey);
 
});
 
function isNumberKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode;
	if (charCode > 31 && (charCode < 45 || charCode > 57))
		return false;
	return true;
}
 
function calc() {
 
	var plan = $('#calc_plan').val();
	var amount = $('#inv_amount').val();
	var percent;
 
	switch (plan) {
		case '1':
			switch (true) {
				case (amount<=9):
					percent = 0;
					break;
				case (amount>9):
					percent = 7;
					break;
				case (amount>4999):
					percent = 0;
					break;
			   default:
					percent = 7;
			}
			break;
 
		case '2':
			switch (true) {
				case (amount<=4999):
					percent = 0;
					break;
				case (amount>=5000):
					percent = 8;
					break;
				case (amount>49999):
					percent => 0;
					break;
				default:
					percent = 8;
			}
			break;
 
		case '3':
			switch (true) {
				case (amount<=49999):
					percent = 0;
					break;
				case (amount>=50000):
					percent = 10;
					break;
				default:
					percent = 10;
			}
			break;
 
	}
 
$('#assign_per').val(percent+'%');
	var total = amount*percent/100;
	$('#profit_d').val('$ '+total.toFixed(2));
	var total2 = total*7;
	$('#profit_s').val('$ '+total2.toFixed(2));
	var total3 = total*30;
	$('#profit_m').val('$ '+total3.toFixed(2));
 
 
 
 
 
}

Gracias por vuestra ayuda.
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Calculo

Publicado por joel (895 intervenciones) el 10/04/2019 15:42:42
Hola Lucas, tienes un condicional en la linea 32, que si el valor es superior a 4999 el porcentaje lo pones a 0!!!
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 Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Calculo

Publicado por Alejandro (540 intervenciones) el 10/04/2019 15:50:21
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Switch evalúa los case de arriba hacia abajo 5000 es mayor a 9 por lo tanto percent=7

Así seria:
1
2
3
4
5
6
7
8
switch (true) {
	case (amount>4999):
	case (amount<=9):
		percent = 0;
		break;
	default:
		percent = 7;
}

Por si no te queda claro el ejemplo anterior
1
2
3
4
5
6
7
8
9
10
11
12
13
switch (true) {
	case (amount>4999):
		percent = 0;
		break;
	case (amount>9):
		percent = 7;
		break;
	case (amount<=9):
		percent = 0;
		break;
	default:
		percent = 7;
}

o ya de plano
1
2
3
4
5
6
7
8
9
10
11
12
13
switch (true) {
	case (amount<=9):
		percent = 0;
		break;
	case (amount>9 && amount<=4999):
		percent = 7;
		break;
	case (amount>4999):
		percent = 0;
		break;
	default:
		percent = 7;
}

aunque se puede simplificar con un operador ternario
1
percent = (amount>9 && amount<=4999)?7:0;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 53 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Calculo

Publicado por Lucas (2 intervenciones) el 11/04/2019 12:34:32
Muchas gracias amigo.
Explicación facil y superclara.

Me ayudastes mucho.
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