Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    8

    Convertire un numero in lettere

    Salve ragazzi, mi chiedevo svi è già capitata una routine per convertire un dato numero in lettere.
    es. 32,25 = trentadue virgola venticinque

    Ciao a tutti

  2. #2
    Intanto a che linguaggio di programmazione ti riferisci?
    Cmq non è difficile costruirla da soli, bisogna solo perderci un po' di tempo.
    In un'oretta tutti i numeri fino a 999.999.999.999.999.999 (novecentonovantanove milioni novecentonovantanovemila novecento novantanove miliardi novecento novantanove milioni novecentonovantanove mila novecento novantanove), comprese le virgole, penso.
    Ciao,
    Berello
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  3. #3
    Questo in C dovrebbe andare:
    codice:
    #include<stdio.h>  // printf() scanf()
    #include<string.h> // strlen()
    #include<stdlib.h> // system() exit()
    
    #define MAX 16
    
    
    
    
    
    void unita(char numeri);
    char decine(char numeri, char c);
    
    
    
    
    
    void main(){
     
        int lenx=0, leny=0;
        char numeri[MAX], c='\0';  
    	
        while(numeri){
            system("CLS");
            printf("[e] = esci\n");
            printf("Inserire il prezzo in Euro [MAX. 999.999.999.999,99]: ");
            scanf("%s",&numeri);
            if(numeri[0]=='e' || numeri[0]=='E')exit(1);
    		
            for(lenx=0;lenx<16;lenx++){
                if(numeri[lenx]==',' || numeri[lenx]=='\0')break;
            }
            for(leny=0;leny<16;leny++){
                if(numeri[leny]=='\0')break;
            }
    		
            leny=(leny-lenx)-1;
            printf("\n");
    	    
    
            // MAX 9 
    
            if(lenx==1){
    			
                if(numeri[0]=='0'){
    	        printf("zero");
    	    }
    	    else{
    	        unita(numeri[0]);
    	    }
            }
    
            // MAX 99
    
            if(lenx==2){
    		    
    	    c=numeri[1];
                if(decine(numeri[0],c)!='1')unita(numeri[1]);
        	
            }
        
            // MAX 999
    
            if(lenx==3){
    		    
    	    if(numeri[0]!='1')unita(numeri[0]);
    	    printf("cento");
    		    
    	    c=numeri[2];
                if(decine(numeri[1],c)!='1')unita(numeri[2]);
        	
            }
    
            // MAX 9.999
    
            if(lenx==4){
    		    
    	    if(numeri[0]!='1'){
                    unita(numeri[0]);
    	        printf("mila");
    	    }
    	    else{
    	        printf("mille");
    	    }
    
    	    if(numeri[1]!='1' && numeri[1]!='0')unita(numeri[1]);
    	    if(numeri[1]!='0')printf("cento");
        
    	    c=numeri[3];
    	    if(decine(numeri[2],c)!='1')unita(numeri[3]);
    		
            }
    
            // MAX 99.999
    
            if(lenx==5){
    		
    	    c=numeri[1];
    	    if(decine(numeri[0],c)!='1')unita(numeri[1]);
    	    printf("mila");
    
                if(numeri[2]!='1' && numeri[2]!='0')unita(numeri[2]);
    	    if(numeri[2]!='0')printf("cento");
        
                c=numeri[4];
    	    if(decine(numeri[3],c)!='1')unita(numeri[4]);
    		
            }
    
            // MAX 999.999
    
            if(lenx==6){
    		    
    	    if(numeri[0]!='1')unita(numeri[0]);
    	    printf("cento");
    		    
                c=numeri[2];
                if(decine(numeri[1],c)!='1')unita(numeri[2]);
    	    printf("mila");
    
                if(numeri[3]!='1' && numeri[3]!='0')unita(numeri[3]);
    	    if(numeri[3]!='0')printf("cento");
        
                c=numeri[5];
    	    if(decine(numeri[4],c)!='1')unita(numeri[5]);
    				
            }
    
            // MAX 9.999.999
    
            if(lenx==7){
       		
    	    if(numeri[0]!='1'){
                    unita(numeri[0]);
    	        printf("milioni");
    	    }
    	    else{
    	        printf("unmilione");
    	    }
    
    	    if(numeri[1]!='1' && numeri[1]!='0')unita(numeri[1]);
    	    if(numeri[1]!='0')printf("cento");
                
    	    c=numeri[3];
                if(numeri[1]=='0' && numeri[2]=='0' && numeri[3]=='1'){
    	        printf("mille");
    	    }
    	    else{
        	        if(decine(numeri[2],c)!='1')unita(numeri[3]);
    	        if(numeri[1]!='0' || numeri[2]!='0' || numeri[3]!='0')printf("mila");
                }
    			
    	    if(numeri[4]!='1')unita(numeri[4]);
       	    if(numeri[4]!='0')printf("cento");
    		    
    	    c=numeri[6];
    	    if(decine(numeri[5],c)!='1')unita(numeri[6]);
    		
            }
    
            // MAX 99.999.999
    
            if(lenx==8){
    		    
                c=numeri[1];
    	    if(decine(numeri[0],c)!='1')unita(numeri[1]);
    	    printf("milioni");
    
    	    if(numeri[2]!='1' && numeri[2]!='0')unita(numeri[2]);
    	    if(numeri[2]!='0')printf("cento");
                
                c=numeri[4];
    	    if(numeri[2]=='0' && numeri[3]=='0' && numeri[4]=='1'){
    	        printf("mille");
    	    }
    	    else{
    	        if(decine(numeri[3],c)!='1')unita(numeri[4]);
    	        if(numeri[2]!='0' || numeri[3]!='0' || numeri[4]!='0')printf("mila");
                }
    			
                if(numeri[5]!='1')unita(numeri[5]);
       	    if(numeri[5]!='0')printf("cento");
    		    
                c=numeri[7];
    	    if(decine(numeri[6],c)!='1')unita(numeri[7]);
    		
            }
    
            // MAX 999.999.999
    
            if(lenx==9){
    		    
    	    if(numeri[0]!='1')unita(numeri[0]);
    	    if(numeri[0]!='0')printf("cento");
    
                c=numeri[2];
    	    if(decine(numeri[1],c)!='1')unita(numeri[2]);
    	    printf("milioni");
    
    	    if(numeri[3]!='1' && numeri[3]!='0')unita(numeri[3]);
    	    if(numeri[3]!='0')printf("cento");
                 
    	    c=numeri[5];
    	    if(numeri[3]=='0' && numeri[4]=='0' && numeri[5]=='1'){
    	        printf("mille");
    	    }
    	    else{
        	        if(decine(numeri[4],c)!='1')unita(numeri[5]);
    	        if(numeri[3]!='0' || numeri[4]!='0' || numeri[5]!='0')printf("mila");
    	    }
                 
                if(numeri[6]!='1')unita(numeri[6]);
       	    if(numeri[6]!='0')printf("cento");
    		    
    	    c=numeri[8];
    	    if(decine(numeri[7],c)!='1')unita(numeri[8]);
    		
            }
    
            // MAX 9.999.999.999
    
            if(lenx==10){
    		    
    	    if(numeri[0]!='1'){
                    unita(numeri[0]);
    	        printf("miliardi");
    	    }
    	    else{
        	        printf("unmiliardo");
    	    }
    			
    	    if(numeri[1]!='1')unita(numeri[1]);
       	    if(numeri[1]!='0')printf("cento");
    
                c=numeri[3];
    	    if(decine(numeri[2],c)!='1')unita(numeri[3]);
    	    if(numeri[1]!='0' || numeri[2]!='0' || numeri[3]!='0')printf("milioni");
    
    	    if(numeri[4]!='1' && numeri[4]!='0')unita(numeri[4]);
    	    if(numeri[4]!='0')printf("cento");
                 
                c=numeri[6];
    	    if(numeri[4]=='0' && numeri[5]=='0' && numeri[6]=='1'){
    	        printf("mille");
    	    }
    	    else{
                    if(decine(numeri[5],c)!='1')unita(numeri[6]);
    	        if(numeri[4]!='0' || numeri[5]!='0' || numeri[6]!='0')printf("mila");
    	    }
                
    	    if(numeri[7]!='1')unita(numeri[7]);
       	    if(numeri[7]!='0')printf("cento");
    		    
                c=numeri[9];
    	    if(decine(numeri[8],c)!='1')unita(numeri[9]);
    		
            }
    
            // MAX 99.999.999.999
    
            if(lenx==11){
    		    
                c=numeri[1];
                if(decine(numeri[0],c)!='1')unita(numeri[1]);
    	    printf("miliardi");
    						
    	    if(numeri[2]!='1')unita(numeri[2]);
       	    if(numeri[2]!='0')printf("cento");
    
    	    c=numeri[4];
    	    if(decine(numeri[3],c)!='1')unita(numeri[4]);
    	    if(numeri[2]!='0' || numeri[3]!='0' || numeri[4]!='0')printf("milioni");
    
    	    if(numeri[5]!='1' && numeri[5]!='0')unita(numeri[5]);
    	    if(numeri[5]!='0')printf("cento");
                
    	    c=numeri[6];
    	    if(numeri[5]=='0' && numeri[6]=='0' && numeri[7]=='1'){
    	        printf("mille");
    	    }
    	    else{
        	        if(decine(numeri[6],c)!='1')unita(numeri[7]);
    	        if(numeri[5]!='0' || numeri[6]!='0' || numeri[7]!='0')printf("mila");
    	    }
                
    	    if(numeri[8]!='1')unita(numeri[8]);
       	    if(numeri[8]!='0')printf("cento");
    		    
    	    c=numeri[10];
    	    if(decine(numeri[9],c)!='1')unita(numeri[10]);
    		
            }
    
            // MAX 999.999.999.999
    
            if(lenx==12){
    		    
                if(numeri[0]!='1')unita(numeri[0]);
    	    if(numeri[0]!='0')printf("cento");
    			
    	    c=numeri[2];
                if(decine(numeri[1],c)!='1')unita(numeri[2]);
    	    printf("miliardi");
    						
    	    if(numeri[3]!='1')unita(numeri[3]);
    	    if(numeri[3]!='0')printf("cento");
    
                c=numeri[5];
    	    if(decine(numeri[4],c)!='1')unita(numeri[5]);
    	    if(numeri[3]!='0' || numeri[4]!='0' || numeri[5]!='0')printf("milioni");
    
    	    if(numeri[6]!='1' && numeri[6]!='0')unita(numeri[6]);
    	    if(numeri[6]!='0')printf("cento");
                 
                c=numeri[7];
    	    if(numeri[6]=='0' && numeri[7]=='0' && numeri[8]=='1'){
    	        printf("mille");
    	    }
    	    else{
        	        if(decine(numeri[7],c)!='1')unita(numeri[8]);
    	        if(numeri[6]!='0' || numeri[7]!='0' || numeri[8]!='0')printf("mila");
    	    }
                
    	    if(numeri[9]!='1')unita(numeri[9]);
       	    if(numeri[9]!='0')printf("cento");
    		    
                c=numeri[11];
    	    if(decine(numeri[10],c)!='1')unita(numeri[11]);
    		
            }
    
    
    
             if(leny>0)printf(" virgola ");
    
    
    
    
            // MAX 9 
    
            if(leny==1){
    			 
                if(numeri[lenx+1]=='0'){
    	        printf("zero");
                }
                else{
                    unita(numeri[lenx+1]);
                }
            }
    
            // MAX 99
    
            if(leny==2){
    		    
                c=numeri[1];
    	    if(decine(numeri[lenx+1],c)!='1')unita(numeri[lenx+2]);
        
            }
    
    
    
    
    
            
            // Accetta solo stringhe numeriche (di lunghezza inferiore a 13, MAX 999.999.999.999) 
            if((lenx<13&&leny<3) && (numeri[0]=='0'||numeri[0]=='1'||numeri[0]=='2'||numeri[0]=='3'||numeri[0]=='4'||numeri[0]=='4'||numeri[0]=='5'||numeri[0]=='6'||numeri[0]=='7'||numeri[0]=='8'||numeri[0]=='9')){
    		    
                printf("\n\n");
       	    system("PAUSE");			
    		
            }
    		
        }
    
    }
    
    
    
    
    
    void unita(char numeri){
    
        switch(numeri){
    		
    	case '1':
    	    printf("uno");
    	    break;
    		
    	case '2':
    	    printf("due");
    	    break;
    		
    	case '3':
    	    printf("tre");
    	    break;
    		
    	case '4':
    	    printf("quattro");
    	    break;
    		
    	case '5':
    	    printf("cinque");
    	    break;
    		
    	case '6':
    	    printf("sei");
    	    break;
    		
    	case '7':
    	    printf("sette");
    	    break;
    		
    	case '8':
    	    printf("otto");
    	    break;
    		    
      	case '9':
                printf("nove");
    	    break;
    
    	default:
                break;
        }
    
    }
    
    
    
    
    
    char decine(char numeri, char c){
    	
        switch(numeri){
    			
            case '1':
         
    	    if(c=='0'){
    		printf("dieci");
    	    }
    	    if(c=='1'){
    	        printf("undici");
    	    }
    	    if(c=='2'){
    		printf("dodici");
    	    }
                if(c=='3'){
    		printf("tredici");
    		
    	    }
                if(c=='4'){
    		printf("quattordici");
    	    }
                if(c=='5'){
    		printf("quindici");
    	
    	    }
                if(c=='6'){
    		printf("sedici");
    	    }
                if(c=='7'){
    		printf("diciassette");
    	    }
                if(c=='8'){
    		printf("diciotto");
    	    }
                if(c=='9'){
    		printf("diciannove");
    	    }
                
                return '1';
    	    break;
    
    	case '2':
    	    if(c=='1' || c=='8'){
    	        printf("vent");
    	    }
    	    else{
    		printf("venti");
    	    }
    	    break;
    		
    	case '3':
    	    if(c=='1' || c=='8'){
    	        printf("trent");
    	    }
    	    else{
                    printf("trenta");
    	    }	
    	    break;
    		
    	case '4':
    	    if(c=='1' || c=='8'){
    	        printf("quarant");
    	    }
    	    else{
    		printf("quaranta");
    	    }
    	    break;
    		
    	case '5':
    	    if(c=='1' || c=='8'){
    	        printf("cinquant");
    	    }
    	    else{
    		printf("cinquanta");
    	    }
    	    break;
    		
    	case '6':
    	    if(c=='1' || c=='8'){
    	        printf("sessant");
    	    }
    	    else{
    		printf("sessanta");
    	    }
    	    break;
    		
    	case '7':
    	    if(c=='1' || c=='8'){
    	        printf("settant");
    	    }
    	    else{
    		printf("settanta");
    	    }
    	    break;
    		
    	case '8':
    	    if(c=='1' || c=='8'){
    	        printf("ottant");
    	    }
    	    else{
    	  	printf("ottanta");
    	    }
    	    break;
    		    
      	case '9':
    	    if(c=='1' || c=='8'){
                    printf("novant");
    	    }
    	    else{
    		printf("novanta");
    	    }
    	    break;
    
    	default:
                break;
        }
        
        return '0';
    
    }
    P.S: la formattazione a tratti fa SCH***
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Wow... :gren:
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    8

    Però

    Ciao e grazie, io mi riferivo al Visual Basic, ma non è un problema, convertirò il codice, grazie ancora.

  6. #6
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    in visual basic c'è la funzione
    stringa = cStr( numero )

  7. #7
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Ops errore cancello ciò che ho detto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.