Saludos..
alguien tendra una rutina para numeros a letras en ingles?...
Gracias.
Arnulfo V
numeros a letras en ingles..
Re: numeros a letras en ingles..
Hace como 500 años, escribí algo para ingles y español, solo por la gana de hacerlo, mira si te sirve.
Puedes bajarlo de:
http://lawebdelprogramador.com/codigo/C ... adena.html
Mas bien lo pongo por aquí un poquito modificada, por si a alguien le sirve...
La cantidad que retorne en letras puede que sea muy larga, así que tendrás que partirla en partes si lo necesitas...
Puedes bajarlo de:
http://lawebdelprogramador.com/codigo/C ... adena.html
Mas bien lo pongo por aquí un poquito modificada, por si a alguien le sirve...
La cantidad que retorne en letras puede que sea muy larga, así que tendrás que partirla en partes si lo necesitas...
Code: Select all
/* Author: Bayron Landaverry
BL Computacion
6 Av. 3-26, zona 4
Chiquimula, Guatemala
Version: Clipper 5.3 (But it may run on other
versions with only a few
changes, I think it may, anyway)
Comments: Does not need external library's
Does not have color nor graphics, for
compatibility with your applications.
There is no guarantee on the application.
It can be used and distributed freely.
Please feel free to modify.
*/
///Procedure ConvNtoL
// clear
// CDate = DATE()
// nAmount = 0
// nAmountL = Space(0)
// @ 11, 36 Say CDate
// @ 13, 35 Get nAmount Picture "9999999.99" Valid nAmount > 0
// Read
// nAmountL = NumToLet(nAmount)
// @ 15, 0 Say nAmountL
//Return
FUNCTION NumToLet(nAmount)
//PARAMETERS nAmount
LOCAL NToL[29, 1]
NToL[ 1, 1] := "One "
NToL[ 2, 1] := "Two "
NToL[ 3, 1] := "Three "
NToL[ 4, 1] := "Four "
NToL[ 5, 1] := "Five "
NToL[ 6, 1] := "Six "
NToL[ 7, 1] := "Seven "
NToL[ 8, 1] := "Eight "
NToL[ 9, 1] := "Nine "
NToL[10, 1] := "Ten "
NToL[11, 1] := "Eleven "
NToL[12, 1] := "Twelve "
NToL[13, 1] := "Thirteen "
NToL[14, 1] := "Fourteen "
NToL[15, 1] := "Fifteen "
NToL[16, 1] := "Sixteen "
NToL[17, 1] := "Seventeen "
NToL[18, 1] := "Eighteen "
NToL[19, 1] := "Nineteen "
NToL[20, 1] := "Twenty "
NToL[21, 1] := "Thirty "
NToL[22, 1] := "Forty "
NToL[23, 1] := "Fifty "
NToL[24, 1] := "Sixty "
NToL[25, 1] := "Seventy "
NToL[26, 1] := "Eighty "
NToL[27, 1] := "Ninety "
NToL[28, 1] := "Hundred "
NToL[29, 1] := "Thousand "
*****Millions*******
nAmountL1 = Substr(Transform(nAmount, "9999999.99"), 1, 7)
nAmountL2 = Substr(nAmountL1, 1, 1)
nAmountL = IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
IF(Val(nAmountL2) > 1, "Millions ", "Million "), "")
*****Hundreds of thousands*********
nAmountL2 = Substr(nAmountL1, 2, 1)
nAmountL3 = Substr(nAmountL1, 3, 2)
nAmountL = nAmountL + IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
NToL[28, 1] + IF(Val(nAmountL3) > 0,;
"", NToL[29, 1]), "")
*****Tenths of thousands*********
nAmountL2 = Substr(nAmountL1, 3, 2)
nAmountL3 = Substr(nAmountL1, 3, 1)
nAmountL4 = Substr(nAmountL1, 4, 1)
nAmountL5 = Substr(nAmountL1, 2, 1)
nAmountL = nAmountL + IF(Val(nAmountL2) < 20 .AND. Val(nAmountL2) > 0,;
NToL[Val(nAmountL2), 1] + NToL[29, 1], "")
nAmountL = nAmountL + IF(Val(nAmountL2) > 19, NToL[(18 + ;
Val(nAmountL3)), 1] + IF(Val(nAmountL4) > 0,;
NToL[Val(nAmountL4), 1], "") + NToL[29, 1], "")
*****Hundreds*********
nAmountL2 = Substr(nAmountL1, 5, 1)
nAmountL3 = Substr(nAmountL1, 6, 2)
nAmountL = nAmountL + IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
NToL[28, 1], "")
*****Tenths*********
nAmountL2 = Substr(nAmountL1, 6, 2)
nAmountL3 = Substr(nAmountL1, 6, 1)
nAmountL4 = Substr(nAmountL1, 7, 1)
nAmountL = nAmountL + IF(Val(nAmountL2) < 20 .AND. Val(nAmountL2) > 0,;
NToL[Val(nAmountL2), 1], "")
nAmountL = nAmountL + IF(Val(nAmountL2) > 19, NToL[(18 + ;
Val(nAmountL3)), 1] + IF(Val(nAmountL4) > 0,;
NToL[Val(nAmountL4), 1], ""), "")
nAmountL = nAmountL + "Dollars and " + Substr(Transform(nAmount, "9999999.99"), -2) + " Cts."
Return nAmountL
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Re: numeros a letras en ingles..
Ejemplo completo probado con FiveWin for Harbour 12.04
Code: Select all
/* Author: Bayron Landaverry
Maya Point Of Sale
6 Av. 3-26, zona 4
Chiquimula, Guatemala
Version: Clipper 5.3 (But it may run on other
versions with only a few
changes, I think it may, anyway)
Comments: Does not need external library's
Does not have color nor graphics, for
compatibility with your applications.
There is no guarantee on this application.
It can be used and distributed freely.
Please feel free to modify it.
*/
#INCLUDE "FiveWin.CH"
Function main()
Local nAmount := 0
MsgGet("Cantidad",,@nAmount)
Msginfo( ALLTRIM( STR(nAmount) ) + ":=" +NumToLet(nAmount) )
Return NIL
FUNCTION NumToLet(nAmount)
LOCAL NToL[29, 1]
NToL[ 1, 1] := "One "
NToL[ 2, 1] := "Two "
NToL[ 3, 1] := "Three "
NToL[ 4, 1] := "Four "
NToL[ 5, 1] := "Five "
NToL[ 6, 1] := "Six "
NToL[ 7, 1] := "Seven "
NToL[ 8, 1] := "Eight "
NToL[ 9, 1] := "Nine "
NToL[10, 1] := "Ten "
NToL[11, 1] := "Eleven "
NToL[12, 1] := "Twelve "
NToL[13, 1] := "Thirteen "
NToL[14, 1] := "Fourteen "
NToL[15, 1] := "Fifteen "
NToL[16, 1] := "Sixteen "
NToL[17, 1] := "Seventeen "
NToL[18, 1] := "Eighteen "
NToL[19, 1] := "Nineteen "
NToL[20, 1] := "Twenty "
NToL[21, 1] := "Thirty "
NToL[22, 1] := "Forty "
NToL[23, 1] := "Fifty "
NToL[24, 1] := "Sixty "
NToL[25, 1] := "Seventy "
NToL[26, 1] := "Eighty "
NToL[27, 1] := "Ninety "
NToL[28, 1] := "Hundred "
NToL[29, 1] := "Thousand "
*****Millions*******
nAmountL1 = Substr(Transform(nAmount, "9999999.99"), 1, 7)
nAmountL2 = Substr(nAmountL1, 1, 1)
nAmountL = IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
IF(Val(nAmountL2) > 1, "Millions ", "Million "), "")
*****Hundreds of thousands*********
nAmountL2 = Substr(nAmountL1, 2, 1)
nAmountL3 = Substr(nAmountL1, 3, 2)
nAmountL = nAmountL + IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
NToL[28, 1] + IF(Val(nAmountL3) > 0,;
"", NToL[29, 1]), "")
*****Tenths of thousands*********
nAmountL2 = Substr(nAmountL1, 3, 2)
nAmountL3 = Substr(nAmountL1, 3, 1)
nAmountL4 = Substr(nAmountL1, 4, 1)
nAmountL5 = Substr(nAmountL1, 2, 1)
nAmountL = nAmountL + IF(Val(nAmountL2) < 20 .AND. Val(nAmountL2) > 0,;
NToL[Val(nAmountL2), 1] + NToL[29, 1], "")
nAmountL = nAmountL + IF(Val(nAmountL2) > 19, NToL[(18 + ;
Val(nAmountL3)), 1] + IF(Val(nAmountL4) > 0,;
NToL[Val(nAmountL4), 1], "") + NToL[29, 1], "")
*****Hundreds*********
nAmountL2 = Substr(nAmountL1, 5, 1)
nAmountL3 = Substr(nAmountL1, 6, 2)
nAmountL = nAmountL + IF(Val(nAmountL2) > 0, NToL[Val(nAmountL2), 1] +;
NToL[28, 1], "")
*****Tenths*********
nAmountL2 = Substr(nAmountL1, 6, 2)
nAmountL3 = Substr(nAmountL1, 6, 1)
nAmountL4 = Substr(nAmountL1, 7, 1)
nAmountL = nAmountL + IF(Val(nAmountL2) < 20 .AND. Val(nAmountL2) > 0,;
NToL[Val(nAmountL2), 1], "")
nAmountL = nAmountL + IF(Val(nAmountL2) > 19, NToL[(18 + ;
Val(nAmountL3)), 1] + IF(Val(nAmountL4) > 0,;
NToL[Val(nAmountL4), 1], ""), "")
nAmountL = nAmountL + IF(nAmount > 1, "Dollars ", "Dollar " ) + "and " + Substr(Transform(nAmount, "9999999.99"), -2) + " Cts."
nAmountL = IF( nAmount <= 0, "Zero Dollars", nAmountL )
Return nAmountL
=====>
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...
Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com
FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate
FiveWin, One line of code and it's done...