101 lines
2.5 KiB
Plaintext
101 lines
2.5 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
// ; Author: "Michael Mozina" <et@snowcrest.net>
|
|
// ; Donated to the Public Domain.
|
|
|
|
// ; Decimals not supported
|
|
|
|
FUNCTION NumToTxtEN(nValue)
|
|
LOCAL cRetVal := ""
|
|
|
|
IF nValue == 0
|
|
RETURN "zero"
|
|
ENDIF
|
|
|
|
IF nValue < 0
|
|
nValue := -nValue
|
|
cRetVal += "minus "
|
|
ENDIF
|
|
|
|
IF nValue >= 1000000
|
|
IF nValue >= 100000000
|
|
cRetVal += int_to_string(Int(nValue / 100000000)) + " hundred "
|
|
nValue -= 100000000 * Int(nValue / 100000000)
|
|
ENDIF
|
|
IF nValue >= 1000000
|
|
cRetVal += int_to_string(Int(nValue / 1000000)) + " "
|
|
nValue -= 1000000 * Int(nValue / 1000000)
|
|
ENDIF
|
|
cRetVal += "million "
|
|
ENDIF
|
|
IF nValue >= 1000
|
|
IF nValue >= 100000
|
|
cRetVal += int_to_string(Int(nValue / 100000)) + " hundred "
|
|
nValue -= 100000 * Int(nValue / 100000)
|
|
ENDIF
|
|
IF nValue >= 1000
|
|
cRetVal += int_to_string(Int(nValue / 1000)) + " "
|
|
nValue -= 1000 * Int(nValue / 1000)
|
|
ENDIF
|
|
cRetVal += "thousand "
|
|
ENDIF
|
|
IF nValue >= 100
|
|
cRetVal += int_to_string(Int(nValue / 100)) + " hundred "
|
|
nValue -= 100 * Int(nValue / 100)
|
|
ENDIF
|
|
IF nValue >= 1
|
|
cRetVal += int_to_string(Int(nValue))
|
|
nValue -= Int(nValue)
|
|
ENDIF
|
|
|
|
RETURN RTrim(cRetVal)
|
|
|
|
STATIC FUNCTION int_to_string(nValue)
|
|
LOCAL cRetVal
|
|
LOCAL aArray1 := {;
|
|
"one" ,;
|
|
"two" ,;
|
|
"three" ,;
|
|
"four" ,;
|
|
"five" ,;
|
|
"six" ,;
|
|
"seven" ,;
|
|
"eight" ,;
|
|
"nine" ,;
|
|
"ten" ,;
|
|
"eleven" ,;
|
|
"twelve" ,;
|
|
"thirteen" ,;
|
|
"fourteen" ,;
|
|
"fifteen" ,;
|
|
"sixteen" ,;
|
|
"seventeen" ,;
|
|
"eighteen" ,;
|
|
"nineteen" }
|
|
|
|
LOCAL aArray2 := {;
|
|
"ten" ,;
|
|
"twenty" ,;
|
|
"thirty" ,;
|
|
"forty" ,;
|
|
"fifty" ,;
|
|
"sixty" ,;
|
|
"seventy" ,;
|
|
"eighty" ,;
|
|
"ninety" }
|
|
|
|
IF nValue < 20
|
|
cRetVal := aArray1[nValue]
|
|
ELSE
|
|
cRetVal := aArray2[Int(nValue / 10)]
|
|
nValue -= 10 * Int(nValue / 10)
|
|
IF Int(nValue) >= 1
|
|
cRetVal += " " + aArray1[Int(nValue)]
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN cRetVal
|
|
|