Pergunta : SpellNumber

Por que quando I '' SpellNumber (A1) '' faz ele introduzem “E” antes dos números maior de 10.000.000? É porque as pilhas que está convertendo são formato da moeda?? E por que, se lá moedas de um centavo é envolvido introduz “e” no lowercase? Ajuda! Thanks class= do

Resposta : SpellNumber

Outra vez todo o código é incluído e há dois reparos,
o espaço em branco retorna o espaço em branco
1 retorna um singular do pund isto é

Chris
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
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
Outras soluções  
 
programming4us programming4us