APOYO PARA FORMULA CONVERTIR PORCENTAJE A LETRA
Publicado por LUIS JULIAN CHAVEZ MEZA (1 intervención) el 12/03/2019 17:21:24
Estoy trabajando en la función de convertir porcentaje a letra ejemplo: 3.60% (TRES PUNTO SESENTA) pero al momento de teclear: 4.60% no me da la letra exacta (CUATRO PUNTO CINCUENTA Y NUEVE) solo me pasa con esa cantidad, esta es la funcion que estoy utilizando
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
function convierte_porcentaje(campo) {
// variables que participan
var flg0 = eval('this.getField("PorcentajeOpera'+campo+'");');
var flg1 = eval('this.getField("Desc_PorcentajeOpera'+campo+'");');
var flag = flg0;
// identifica que la captura
if((flg0.value.length==0)||(flg0.value==null)||(flg0.value=="")){
flg1.value ="-- -- --";
return false;
}
if(isNaN(flg0.value)){
flg1.value ="NO APLICA";
}else{
if(flg0.value==0){
flg1.value="CERO";
}else{
if(flg0.value<100.01){
// verificar si tiene fracciones
var e = parseInt(flg0.value);
var f = parseInt(flg0.value*100)-e*100;
e = sub_conv(e);
if((f>0)){
var f2 = f;
f = sub_conv(f);
f = (f2<10)? "CERO "+f:f;
e = e+" PUNTO "+f;
}
flg1.value=e;
}else{
app.alert("El porcentaje no puede ser" + flg0.value);
flg1.setFocus();
flg1.value = "ERROR !!!";
}
}
}
return false;
}
function sub_conv(Porcentaje){
var d = Porcentaje/100;
if (d<0) var d=0;
var d_3 = util.printx("9", d);
var Porcentaje = Porcentaje - (d_3+100);
var d = Porcentaje/10;
if (d<0) var d=0;
var d_2 = util.printx("9", d);
var Porcentaje = Porcentaje - (d_2+10);
var d = Porcentaje/1;
if (d<0) var d=0;
var d_1 = util.printx("9", d);
var Porcentaje = Porcentaje - (d_1+1);
var x_x = d_2 + d_1;
var xxx = d_3 + d_2 + d_1;
var x_d_1 = "";
var x_x = x_x/1;
if (d_1==0) x_d_1 = "CERO ";
if (d_1==1) x_d_1 = "UN ";
if (d_1==2) x_d_1 = "DOS";
if (d_1==3) x_d_1 = "TRES";
if (d_1==4) x_d_1 = "CUATRO";
if (d_1==5) x_d_1 = "CINCO";
if (d_1==6) x_d_1 = "SEIS";
if (d_1==7) x_d_1 = "SIETE";
if (d_1==8) x_d_1 = "OCHO";
if (d_1==9) x_d_1 = "NUEVE";
if (x_x==10) x_d_1 = "DIEZ";
if (x_x==11) x_d_1 = "ONCE";
if (x_x==12) x_d_1 = "DOCE";
if (x_x==13) x_d_1 = "TRECE";
if (x_x==14) x_d_1 = "CATORCE";
if (x_x==15) x_d_1 = "QUINCE";
var x_d_2 = "";
if ((x_x>15) && (x_x<20)) x_d_2 = "DIECI";
if ((x_x>19) && (x_x<30)) {
x_d_2 = "VEINT";
if (x_x==20){
x_d_2 = x_d_2 +"E";
x_d_1 = "";
}else{
x_d_2 = x_d_2 +"I";
}
}
if ((x_x>29) && (x_x<40)) x_d_2 = "TREINTA";
if (x_x==30) x_d_1 = "";
if ((x_x>39) && (x_x<50)) x_d_2 = "CUARENTA";
if (x_x==40) x_d_1 = "";
if ((x_x>49) && (x_x<60)) x_d_2 = "CINCUENTA";
if (x_x==50) x_d_1 = "";
if ((x_x>59) && (x_x<70)) x_d_2 = "SESENTA";
if (x_x==60) x_d_1 = "";
if ((x_x>69) && (x_x<80)) x_d_2 = "SETENTA";
if (x_x==70) x_d_1 = "";
if ((x_x>79) && (x_x<90)) x_d_2 = "OCHENTA";
if (x_x==80) x_d_1 = "";
if ((x_x>89) && (x_x<100)) x_d_2 = "NOVENTA";
if (x_x==90) x_d_1 = "";
if (x_x==100) x_d_1 = "";
if ((d_1>0) && ((x_x>29) && (x_x<100))) x_d_2 = x_d_2 + " Y ";
var x_d_3 = "";
// Correcciones
if (xxx==100) var x_d_3 = "CIEN";
xxx = x_d_3 + x_d_2 + x_d_1;
// Parche para el manejo de 1%
if(xxx=="UNO ") xxx = "UNO ";
return xxx;
}
Valora esta pregunta
0