Spellnumber da função (numberRange como a escala)
Se numberRange = "" então
spellnumber = ""
Mais
spellnumber = Currency2Words (numberRange, “libras”, “moedas de um centavo”)
Terminar se
Terminar a função
Função Currency2Words (ByVal MyNumber, strUnits opcionais, strFrac opcional)
Temp não ofuscante
Unidades não ofuscantes
Frac não ofuscante
DecimalPlace não ofuscante
Escurecer a contagem
Se strUnits de IsMissing (strUnits) então = “dólares”
Se strFrac de IsMissing (strFrac) então = “centavos”
Lugar de ReDim (9) como a corda
Lugar (2) = “mil”
Lugar (3) = “milhão”
Lugar (4) = “bilhões”
Lugar (5) = “Trillion”
MyNumber = guarnição (estreptococo (MyNumber))
DecimalPlace = InStr (MyNumber, “.")
Se DecimalPlace > 0 então
Temp = saido (meados de (MyNumber, DecimalPlace + 1) & “00”, 2)
Frac = ConvertTens (Temp)
MyNumber = guarnição (esquerda (MyNumber, DecimalPlace - 1))
Terminar se
Contagem = 1
Fazer quando "" <> de MyNumber
Temp = ConvertHundreds (direito (MyNumber, 3))
Se unidades <> = Temp & lugar (contagem) & unidades do "" do Temp então
Se Len (MyNumber) > 3 então
MyNumber = saido (MyNumber, Len (MyNumber) - 3)
Mais
MyNumber = ""
Terminar se
Contagem = contagem + 1
Laço
Unidades = guarnição (unidades) & ““
Selecionar a guarnição do caso (as unidades)
Encaixotar o ""
Unidades = "" '“não” & strUnits
Caso “um”
Unidades = “uma” & saido (strUnits, Len (strUnits) - 1)
Caso mais
Unidades = unidades & strUnits
Extremidade seleta
Selecionar a guarnição do caso (Frac)
Encaixotar o ""
Frac = "" '“e não” & strFrac
Caso “um”
Se unidades = "" então
Frac = Frac & ““& strFrac
Mais
Frac = “e um” & saido (strFrac, Len (strFrac) - 1)
Terminar se
Encaixotar mais
Se unidades = "" então
Frac = Frac & ““& strFrac
Mais
Frac = “e” & Frac & ““& strFrac
Terminar se
Terminar seleto
Se unidades = "" então
Currency2Words = Frac
Mais
Currency2Words = unidades & Frac
Terminar se
Currency2Words = substituem (guarnição (Currency2Words), “ “,” ")
Função do fim
Função confidencial ConvertHundreds (ByVal MyNumber)
Resultado não ofuscante como a corda
Se Val (MyNumber) = 0 retira então a função
MyNumber = direito (“000” & MyNumber, 3)
'Centenas
Se (MyNumber, 1) “ <> 0 deixado” então
Resultado = ConvertDigit (deixado (MyNumber, 1)) & “cem”
Terminar se
'dez
Se (MyNumber, 2, 1) “ <> 0 meados de” então
Resultado = resultado & ConvertTens (meados de (MyNumber, 2))
Mais
Resultado = resultado & ConvertDigit (meados de (MyNumber, 3))
Terminar se
ConvertHundreds = guarnição (resultado)
Função do fim
Função confidencial ConvertTens (ByVal MyTens)
Resultado não ofuscante como a corda
'É o valor entre 10 e 19?
Se Val (deixado (MyTens, 1)) = 1 então
Selecionar o caso Val (MyTens)
Caso 10: Resultado = “dez”
Caso 11: Resultado = “onze”
Caso 12: Resultado = “doze”
Caso 13: Resultado = “treze”
Caso 14: Resultado = “quatorze”
Caso 15: Resultado = “quinze”
Caso 16: Resultado = “dezesseis”
Caso 17: Resultado = “dezessete”
Caso 18: Resultado = “dezoito”
Caso 19: Resultado = “dezenove”
Caso mais
Extremidade seleta
Mais
'. se não está entre 20 e 99.
Selecionar o caso Val (saiu (MyTens, 1))
Caso 2: Resultado = “vinte”
Caso 3: Resultado = “trinta”
Caso 4: Resultado = “quarenta”
Caso 5: Resultado = “cinqüênta”
Caso 6: Resultado = “sessenta”
Caso 7: Resultado = “setenta”
Caso 8: Resultado = “oitenta”
Caso 9: Resultado = “Ninety”
Caso mais
Extremidade seleta
'O converso uns coloc o dígito.
Resultado = resultado & ConvertDigit (direitos (MyTens, 1))
Terminar se
ConvertTens = resultado
Função do fim
Função confidencial ConvertDigit (ByVal MyDigit)
Selecionar o caso Val (MyDigit)
Caso 1: ConvertDigit = “um”
Caso 2: ConvertDigit = “dois”
Caso 3: ConvertDigit = “três”
Caso 4: ConvertDigit = “quatro”
Caso 5: ConvertDigit = “cinco”
Caso 6: ConvertDigit = “seis”
Caso 7: ConvertDigit = “sete”
Caso 8: ConvertDigit = “oito”
Caso 9: ConvertDigit = “nove”
Caso mais: ConvertDigit = ""
Extremidade seleta
Função do fim
|