![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Ejemplo de uso:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#2
|
|||
|
|||
|
Gracias amigo marcoszorrilla pero ya tengo un codigo que es este
Código:
Function CantidadEnLetra(curCantidad: Currency; MonNal: integer): String;
var i: integer;
Cantidad, Centavos: Currency;
BloqueCero, NumeroBloques, Digito: Byte;
PrimerDigito, SegundoDigito, TercerDigito: Byte;
Resultado, Temp, strCentavos, Bloque: String;
Unidades: Array[0..28] of String;
Decenas: Array[0..8] of String;
Centenas: Array[0..8] of String;
begin
Unidades[0] := 'UN'; Unidades[1] := 'DOS'; Unidades[2] := 'TRES'; Unidades[3] := 'CUATRO';
Unidades[4] := 'CINCO'; Unidades[5] := 'SEIS'; Unidades[6] := 'SIETE'; Unidades[7] := 'OCHO';
Unidades[8] := 'NUEVE'; Unidades[9] := 'DIEZ'; Unidades[10] := 'ONCE'; Unidades[11] := 'DOCE';
Unidades[12] := 'TRECE'; Unidades[13] := 'CATORCE'; Unidades[14] := 'QUINCE'; Unidades[15] := 'DIECISÉIS';
Unidades[16] := 'DIECISIETE'; Unidades[17] := 'DIECIOCHO'; Unidades[18] := 'DIECINUEVE';
Unidades[19] := 'VEINTE'; Unidades[20] := 'VEINTIUNO'; Unidades[21] := 'VEINTIDÓS';
Unidades[22] := 'VEINTITRÉS'; Unidades[23] := 'VEINTICUATRO'; Unidades[24] := 'VEINTICINCO';
Unidades[25] := 'VEINTISÉIS'; Unidades[26] := 'VEINTISIETE'; Unidades[27] := 'VEINTIOCHO'; Unidades[28] := 'VEINTINUEVE';
Decenas[0] := 'DIEZ'; Decenas[1] := 'VEINTE'; Decenas[2] := 'TREINTA'; Decenas[3] := 'CUARENTA';
Decenas[4] := 'CINCUENTA'; Decenas[5] := 'SESENTA'; Decenas[6] := 'SETENTA'; Decenas[7] := 'OCHENTA'; Decenas[8] := 'NOVENTA';
Centenas[0] := 'CIENTO'; Centenas[1] := 'DOSCIENTOS'; Centenas[2] := 'TRESCIENTOS'; Centenas[3] := 'CUATROCIENTOS';
Centenas[4] := 'QUINIENTOS'; Centenas[5] := 'SEISCIENTOS'; Centenas[6] := 'SETECIENTOS'; Centenas[7] := 'OCHOCIENTOS'; Centenas[8] := 'NOVECIENTOS';
Cantidad := Trunc(curCantidad);
Centavos := (curCantidad - Cantidad) * 100;
NumeroBloques := 1;
Repeat
PrimerDigito := 0;
SegundoDigito := 0;
TercerDigito := 0;
Bloque := '';
BloqueCero := 0;
For i := 1 To 3 do begin
Digito := Round(Cantidad) Mod 10;
If Digito <> 0 Then begin
Case i of
1: begin
Bloque := ' ' + Unidades[Digito - 1];
PrimerDigito := Digito;
end; //case 1
2: begin
If Digito <= 2 Then begin
Bloque := ' ' + Unidades[(Digito * 10 + PrimerDigito - 1)];
end Else begin
If PrimerDigito <> 0 then
Temp := ' Y' else Temp := '';
Bloque := ' ' + Decenas[Digito - 1] + Temp + Bloque;
End; //if
SegundoDigito := Digito;
end; //case 2
3: begin
If (Digito = 1) and (PrimerDigito = 0) and (SegundoDigito = 0) then
Temp := 'CIEN' else Temp := Centenas[Digito-1];
Bloque := ' ' + Temp + Bloque;
TercerDigito := Digito;
end; //case 3
End; //case
end Else begin
BloqueCero := BloqueCero + 1;
End; // If Digito <>0
Cantidad := Int(Cantidad / 10);
If Cantidad = 0 Then begin
Break;
End; // If Cantidad=0
end; //for
Case NumeroBloques of
1:
Resultado := Bloque;
2: begin
if BloqueCero = 3 then
Temp := '' else Temp := ' MIL';
Resultado := Bloque + Temp + Resultado;
end; //case 2
3: begin
If (PrimerDigito = 1) and (SegundoDigito = 0) and (TercerDigito = 0) then
Temp := ' MILLON' else Temp := ' MILLONES';
Resultado := Bloque + Temp + Resultado;
end; //case 3
End; //case
NumeroBloques := NumeroBloques + 1;
Until Cantidad = 0; //repeat
case MonNal of
0: begin
If curCantidad > 1 then
Temp := ' CENTAVOS ***' else Temp := ' CENTAVO ***';
CantidadEnLetra := Resultado + Temp;
end;
1: begin
If curCantidad > 1 then
Temp := ' PESOS ' else Temp := ' PESO ';
if Centavos=0 then strCentavos := '' else strCentavos := 'CON '+CantidadEnLetra(Centavos, 0);
CantidadEnLetra := 'SON: *** ' + Resultado + Temp + strCentavos;
end;
2: begin
If curCantidad > 1 then
Temp := ' DLLS ' else Temp := ' DOLAR ';
if Centavos=0 then strCentavos := '' else strCentavos := 'CON '+CantidadEnLetra(Centavos, 0);
CantidadEnLetra := 'SON: *** ' + Resultado + Temp + strCentavos;
end;
end;
End;
Código:
var i: string; begin i:= CantidadEnLetra(StrToFloat(Edit1.Text) ); label1.Caption:= (i); end; |
|
#3
|
||||
|
||||
|
tal vez te falta convertir el punto a coma
Seguramente te marca error porque en tu edit estas capturando 123.50 en vez de 123,50 por eso te marca el error si capturas una cantidad manualmente como 123,50 veras que la función de contraveneno funciona y eso te lo aseguro porque yo tambien use su función pero no me acordaba que hay que convertir el punto decimal a coma para que muestre los centavos si no quieres hacer uso de la funcion strFormatDecimal validar que solo te permita capturar coma en vez de punto decimal
esta función lo que hece es convertir el punto decimal a coma
asi la llamas
y luego llamar la función CantidadEnLetra
o tu problema es ese o estas haciendo mal uso de los datos porque si es eso deberias analizar lo que hace el codigo... saludos!!!
__________________
el cielo me dio un cariño sin merecerlo... chimikuilo!!! |
|
#4
|
|||
|
|||
|
Gracias amigos ya quedo listo.
|
|
#5
|
||||
|
||||
|
pregunta!
por pura curiosidad que era lo que estabas haciendo mal que no te arrojaba el resultado?
saludos.
__________________
el cielo me dio un cariño sin merecerlo... chimikuilo!!! |
|
#6
|
|||
|
|||
|
ok amigos les voy aponer mi codigo ya funcionando del cual les agradesco mucho sus contestaciones.
Código:
procedure TAlta_factura.Button1Click(Sender: TObject);
var
no1,no2:double;
no3,no4:real;
begin
if (edit4.text='')then
edit4.Text:='0';
if edit6.text='' then
edit6.Text:='0';
no1:=strtofloat(edit4.Text);
no2:=strtofloat(edit6.Text);
edit7.Text:=formatfloat('0.00',no1+no2);
no3:=strtofloat(edit10.Text);
edit8.text:=formatfloat('0.00',no3/1.15);
no4:=strtofloat(edit8.Text);
edit9.Text:=formatfloat('0.00',no4*0.15);
label5.Caption:=CantidadEnLetra(StrtoFloat(edit10.Text),1);
end;
|
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| 45 Centavos | enecumene | Humor | 5 | 23-10-2008 17:51:23 |
| Como convertir numero entero en letra | kurono | Varios | 2 | 23-01-2008 05:10:39 |
| Convertir numero en cadena | rex | JAVA | 7 | 25-10-2007 03:28:11 |
| Convertir Numero a Letras... en frances | jcarteagaf | Varios | 4 | 11-09-2007 19:23:45 |
| De número a letra | samame | Varios | 1 | 10-03-2004 17:31:41 |
|