2
Answers

Math is rounding but I don't want it to.

I'm doing an exercise to convert between celcius and farenheit. The celcius to farenheit works great but the rounding for the opposite is causing problems.
It appears that saying:
floatVariableName = 5 / 9;
is rounding to 0. Shouldn't a float NOT do that? I've also tried type decimal. Below is my full code... sorry don't laugh... only 1 week into learning this. Please help! I've highlighted the line I think is giving me trouble. Thanks!

static
void Main(string[] args)
{

string convChoice = "";

string endProgram = "Y";

string userTemp = "";

int parsedTemp = 0;

float convertedTemp = 0;

int roundedTemp = 0;

while ((endProgram == "y") || (endProgram == "Y"))

{

Console.WriteLine("If you would like to convert to Celcius please enter C. To convert to Farenheit please enter F.");

convChoice = Console.ReadLine(); //sets their choice of conversion type

if ((convChoice == "c") || (convChoice == "C"))

{

Console.WriteLine("Please enter your original Farenheit value:");

userTemp = Console.ReadLine(); //gets the user value

parsedTemp = int.Parse(userTemp); //converts uservalue to an int for calculation

convertedTemp = (5 / 9) * (parsedTemp - 32);

//roundedTemp = Convert.ToInt32(convertedTemp);

Console.WriteLine("The Celcius equivalent of Farenheit {0} is {1}.", userTemp, convertedTemp);

}

else if ((convChoice == "f") || (convChoice == "F"))

{

Console.WriteLine("Please enter your original Celcius value:");

userTemp = Console.ReadLine(); //gets the user value

parsedTemp = int.Parse(userTemp); //converts uservalue to an int for calculation

convertedTemp = (9 / 5) * (parsedTemp + 32);

roundedTemp = Convert.ToInt32(convertedTemp);

Console.WriteLine("The Farenheit equivalent of Celcius {0} is {1}.", userTemp, roundedTemp);

}

else

{

Console.WriteLine("Invalid Choice");

}

Console.WriteLine("Would you like to try again? Y/N");

endProgram = Console.ReadLine();

}

}

Answers (2)