Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367

    [C++] Covertire da double a frazione decimale

    Ci mi può dire un algoritmo per trasformare un numero di tipo double in una frazione decimale composta da due variabili intere (numeratore e denominatore) ?

    Ad esempio 1.23E+3 = 1.23 * 1000 = 1230 = (1230) / (1)
    7.3453E-4 = 7.3453 / 10000 = 0.00073453 = (73453) / (100000000) => approssimato a (734) / (1000000)

    A me non viene in mente niente

  2. #2
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    codice:
    void toFrazione(float n,int &num,int &den){
        den=1;
        while(n-(int)n!=0){
            n*=10;
            den*=10;
        }
        num=n;
    
        //semplificazione
        for(int i=num;i>0;i--){
            if(!(num%i) && !(den%i)){
                num/=i;
                den/=i;
            }
        }
    }
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  3. #3
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367
    Grazie.
    Per la semplificazione ho usato l'algoritmo di Euclide.

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.