| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |