|
| Thomas svarede om tal til bogstaver Fra : d@n |
Dato : 08-02-01 22:25 |
|
Den 3/2 skrev du Thomas, et lille godt program, om at konvertere tal til
bogstaver.
.......Vil du være venlig at skrive version1.2 (-: af programmet.
Programmet forhøjer øjentsynligt variablen med tallet 125,5 til 126 og giver
resultatet "enhundredetotiSEKS 50/100"
eller prøv med 129,5 eller 15,5 osv. ????
MVH dan
| |
d@n (09-02-2001)
| Kommentar Fra : d@n |
Dato : 09-02-01 00:20 |
|
Hej ...
Tillæg til nedennævnte
jeg har nu indsat flg. kode under Private Function Bogstavering(osv)
Dim L, X, a
L = Len(Tal) - 2 'HVORFOR -2???
For X = 1 To L
a = Mid(Tal, X, 1)
If a = "," Then
Exit For
End If
Next
Tal = Left(Tal, X - 1)
FØR
lIalt = (Tal \ Enhed) Mod 1000
Det ser ud til at virke men er måske en smule uprofessionelt.
MVH Dan
"d@n" <dan@hilding.dk> skrev i en meddelelse
news:95v2ja$226q$1@news.cybercity.dk...
> Den 3/2 skrev du Thomas, et lille godt program, om at konvertere tal til
> bogstaver.
> ......Vil du være venlig at skrive version1.2 (-: af programmet.
> Programmet forhøjer øjentsynligt variablen med tallet 125,5 til 126 og
giver
> resultatet "enhundredetotiSEKS 50/100"
> eller prøv med 129,5 eller 15,5 osv. ????
>
> MVH dan
>
>
>
>
| |
Tomas Christiansen (12-02-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 12-02-01 00:11 |
|
d@n skrev:
> lIalt = (Tal \ Enhed) Mod 1000
Du slog hovedet på sømmet, da du bemærkede at der var fejl i denne linie!
Da jeg brugte \ operatoren, gik jeg ud fra at argumenterne begge var heltal
og ikke kommatal, men det er de jo ikke nødvendigvis!
Hvis Tal er et kommatal, afrunder VB det til et heltal inden
heltalsdivisionen foretages. Al afrunding i VB sker efter "bankmandens
afrundingsmetode) - undtagen i funktionen FormatNumber.
Med andre ord gav tallet 124,5 (dansk format) svaret "enhundredetotifire
50/100", hvorimod 125,5 gav svaret "enhundredetotiseks 50/100"...
Kedeligt, ikke sandt?
Løsningen er i og for sig enkel nok, idet følgende kunne have klaret
"tricket":
lIalt = (Int(Tal) \ Enhed) Mod 1000
Men det var andre fejl...
Det hedder jo EThundrede og ikke ENhundrede.
Svaret på 1000 var også "entusinde 00/100" - det rigtige er naturligvis
"ettusinde 00/100".
Så løsningen er en ny og fuldstændig revideret version af programmet, som
jeg har postet i den oprindelige tråd "Tal til bogstaver".
-------
Tomas
| |
|
|