- Home
- Producten
- Bedrijfsbehoeften
- Partners
- Referenties
- Kenniscentrum
- Support
- Over Perrit
- Handleidingen
- Nieuws
- Acties
One Thousand Two Hundred Thirty Four Dollars And Fifty Six Cents
*FUNCTION ConvertCurrencyToEnglishLPARAMETERS tNumToConvert
LOCAL TempLOCAL NumToConvertLOCAL cDollars, cCentsLOCAL nDecimalPlace, nCountLOCAL ARRAY aPlace[9]
DO CASECASE EMPTY(tNumToConvert) NumToConvert = "0"CASE TYPE("tNumToConvert") = "N" && Converteren naar positieve tekenreeks *!* Controleren of het getal te groot is voor VFP. Functie afsluiten als het getal te groot is IF tNumToConvert > 9999999999999.99 RETURN "**,***,***,***,***.**" ENDIF * tnNumToConvert converteren naar een positieve tekenreeks, waarbij extra spaties worden weggehaald. NumToConvert = ALLTRIM(STR(ABS(tNumToConvert), 16, 2))OTHERWISE && Parameter is character based, make sure it is not negative. * Het getal converteren naar een positief getal. NumToConvert = IIF(LEFT(ALLTRIM(tNumToConvert), 1) = "-", SUBSTR(ALLTRIM(tNumToConvert), 2), ALLTRIM(tNumToConvert))ENDCASE
* Positie van decimaal teken zoeken.nDecimalPlace = AT(".", NumToConvert)
STORE "" TO cDollars, cCents, Result
aPlace = ""aPlace[2] = " Thousand "aPlace[3] = " Million "aPlace[4] = " Billion "aPlace[5] = " Trillion "aPlace[6] = " Quadrillion "aPlace[7] = " Quintillion "aPlace[8] = " Sextillion "aPlace[9] = " Septillion "
* Wanneer de positie van het decimale teken is gevonden...IF nDecimalPlace > 0 * Centen converteren Temp = LEFT(SUBSTR(NumToConvert, nDecimalPlace + 1) + "00", 2) cCents = ConvertTens(Temp)
* Centen verwijderen van te converteren restant. NumToConvert = ALLTRIM(LEFT(NumToConvert, nDecimalPlace - 1))ENDIF
nCount = 1DO WHILE NOT NumToConvert == "" * De laatste 3 cijfers van NumToConvert converteren naar dollars in woordvorm. Temp = ConvertHundreds(RIGHT(NumToConvert, 3)) IF NOT Temp == "" cDollars = Temp + aPlace[nCount] + cDollars ENDIF IF LEN(NumToConvert) > 3 Then * Laatste 3 geconverteerde cijfers verwijderen uit NumToConvert. NumToConvert = LEFT(NumToConvert, LEN(NumToConvert) - 3) ELSE NumToConvert = "" ENDIF nCount = nCount + 1ENDDO
* Schoonmaken van dollargedeelte.DO CASECASE cDollars == "" cDollars = "No Dollars"CASE cDollars == "One" cDollars = "One Dollar"OTHERWISE cDollars = cDollars + " Dollars"ENDCASE
* Schoonmaken van centgedeelte.DO CASECASE cCents == "" cCents = " And No Cents"CASE cCents == "One" cCents = " And One Cent"OTHERWISE cCents = " And " + cCents + " Cents"ENDCASE
ConvertCurrencyToEnglish = cDollars + cCentsRETURN ConvertCurrencyToEnglishENDFUNC
FUNCTION ConvertHundreds LPARAMETERS NumToConvert LOCAL Result Result = ""
* Functie afsluiten als er niets te converteren is. IF VAL(NumToConvert) = 0 RETURN Result ENDIF
* Voorloopnullen toevoegen aan getal. NumToConvert = RIGHT("000" + NumToConvert, 3)
* Zijn er honderdtallen die moeten worden geconverteerd?' IF LEFT(NumToConvert, 1) <> "0" Then Result = ConvertDigit(LEFT(NumToConvert, 1)) + " Hundred " ENDIF
* Zijn er tientallen die moeten worden geconverteerd?' IF SUBSTR(NumToConvert, 2, 1) <> "0" Then Result = Result + ConvertTens(SUBSTR(NumToConvert, 2)) ELSE * Als dit niet het geval is, de cijfers onder de tien converteren. Result = Result + ConvertDigit(SUBSTR(NumToConvert, 3)) ENDIF
ConvertHundreds = ALLTRIM(Result) RETURN ConvertHundredsENDFUNC
FUNCTION ConvertTens LPARAMETERS MyTens LOCAL Result Result = ""
* Ligt de waarde tussen 10 en 19?' IF VAL(LEFT(MyTens, 1)) = 1 DO CASE CASE VAL(MyTens) = 10 Result = "Ten" CASE VAL(MyTens) = 11 Result = "Eleven" CASE VAL(MyTens) = 12 Result = "Twelve" CASE VAL(MyTens) = 13 Result = "Thirteen" CASE VAL(MyTens) = 14 Result = "Fourteen" CASE VAL(MyTens) = 15 Result = "Fifteen" CASE VAL(MyTens) = 16 Result = "Sixteen" CASE VAL(MyTens) = 17 Result = "Seventeen" CASE VAL(MyTens) = 18 Result = "Eighteen" CASE VAL(MyTens) = 19 Result = "Nineteen" OTHERWISE ENDCASE ELSE * .. anders ligt deze TUSSEN 20 EN 99. DO CASE CASE VAL(LEFT(MyTens, 1)) = 2 Result = "Twenty " CASE VAL(LEFT(MyTens, 1)) = 3 Result = "Thirty " CASE VAL(LEFT(MyTens, 1)) = 4 Result = "Forty " CASE VAL(LEFT(MyTens, 1)) = 5 Result = "Fifty " CASE VAL(LEFT(MyTens, 1)) = 6 Result = "Sixty " CASE VAL(LEFT(MyTens, 1)) = 7 Result = "Seventy " CASE VAL(LEFT(MyTens, 1)) = 8 Result = "Eighty " CASE VAL(LEFT(MyTens, 1)) = 9 Result = "Ninety " OTHERWISE ENDCASE
* Cijfer onder de tien converteren. Result = Result + ConvertDigit(RIGHT(MyTens, 1)) ENDIF ConvertTens = Result RETURN ConvertTensENDFUNC
FUNCTION ConvertDigit LPARAMETERS MyDigit DO CASE CASE VAL(MyDigit) = 1 ConvertDigit = "One" CASE VAL(MyDigit) = 2 ConvertDigit = "Two" CASE VAL(MyDigit) = 3 ConvertDigit = "Three" CASE VAL(MyDigit) = 4 ConvertDigit = "Four" CASE VAL(MyDigit) = 5 ConvertDigit = "Five" CASE VAL(MyDigit) = 6 ConvertDigit = "Six" CASE VAL(MyDigit) = 7 ConvertDigit = "Seven" CASE VAL(MyDigit) = 8 ConvertDigit = "Eight" CASE VAL(MyDigit) = 9 ConvertDigit = "Nine" OTHERWISE ConvertDigit = "" ENDCASE RETURN ConvertDigitENDFUNC