I put the offending cast in bold to make it easier to find. The program runs but it executes int division. Any idea why the cast isn't working?
#include <iostream>
struct Fraction
{
int nNumerator;
int nDenominator;
};
void Multiply(Fraction sF1, Fraction sF2)
{
using namespace std;
cout << static_cast<float> (sF1.nNumerator / sF2.nNumerator)*(sF1.nDenominator / sF2.nDenominator);
}
int main()
{
using namespace std;
Fraction sF1;
cout << "Enter a Numerator: " << endl;
cin >> sF1.nNumerator;
cout << "Enter a Denominator: " << endl << endl;
cin >> sF1.nDenominator;
Fraction sF2;
cout << "Enter another Numerator: " << endl;
cin >> sF2.nNumerator;
cout << "Enter another Denominator: " << endl;
cin >> sF2.nDenominator;
Multiply(sF1, sF2);
return 0;
}
#include <iostream>
struct Fraction
{
int nNumerator;
int nDenominator;
};
void Multiply(Fraction sF1, Fraction sF2)
{
using namespace std;
cout << static_cast<float> (sF1.nNumerator / sF2.nNumerator)*(sF1.nDenominator / sF2.nDenominator);
}
int main()
{
using namespace std;
Fraction sF1;
cout << "Enter a Numerator: " << endl;
cin >> sF1.nNumerator;
cout << "Enter a Denominator: " << endl << endl;
cin >> sF1.nDenominator;
Fraction sF2;
cout << "Enter another Numerator: " << endl;
cin >> sF2.nNumerator;
cout << "Enter another Denominator: " << endl;
cin >> sF2.nDenominator;
Multiply(sF1, sF2);
return 0;
}