/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
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



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste