How to output fraction instead of decimal number?

后端 未结 13 2073
余生分开走
余生分开走 2020-12-01 21:59

In C++, When I calculate 2/3, it will output decimal values, how can I just get the original format (i.e.g 2/3) instead of 0.66666667

Thanks

13条回答
  •  不思量自难忘°
    2020-12-01 22:40

    This is a program to convert a decimal number into a fraction

    #include
    using namespace std;
    
    int main()
    {
    
        float num, origNum, rem = 1;
        int den = 1, i, count=0, gcd=1;
    
        cout << "Enter any float number to convert it into mixed fraction: ";
        cin >> origNum;
    
        num = origNum - static_cast(origNum);
    
        if (num > 0.1)
        {
            while ( (rem > 0.1) )
            {
                num = num * 10;
                rem = num - static_cast(num);
                count++;
            }
    
            for (i = 1; i <= count; i++) // counter is for the calculation of denominator part of mixed fraction 
            {
                den = den * 10;
            }
    
            for (i = 2; i <= num|| i<=rem; i++)
            {
                if( (static_cast(num) % i == 0) && (den % i == 0) )
                {
                    gcd = i;
                }   
            }
    
            cout << (static_cast(origNum)) << " and " << (static_cast(num))/gcd << "/" << den/gcd;
        }
        else
            cout << (static_cast(origNum));
    
        return 0;   
    }
    

提交回复
热议问题