C++ issue with division, multiplication, and addition on same line -
this question has answer here:
- what behavior of integer division? 5 answers
this in c++, i'm having problem program converts celsius fahrenheit.
the line i'm having issue conversion equation line:
fahrenheittemp = (9 / 5) * celsiustemp + 32 the equation/program works fine when put 1.8 in place of 9 / 5 reason 9 / 5 never gets multiplied celsiustemp. returns value of celsiustemp + 32 only.
the rest of program good, it's 9 / 5 doesn't anything, have tried different types of combining parenthesis, etc.
your problem in fact you're using integer division instead of floating-point division. expression:
9 / 5 evaluates to:
1 because throws away 0.8 remainder. if want use floating-point division, you'll need make sure 1 or both of operands floating-point types:
fahrenheittemp = (9.0 / 5.0) * celsiustemp + 32; if farenheittemp int, you'll need cast int afterward.
fahrenheittemp = static_cast<int>((9.0 / 5.0) * celsiustemp + 32);
Comments
Post a Comment