-
Formula Error
So i am not getting the formula for the last one I'm not sure why it is not coming out. And also for the Fahrenheit my value keeps equaling to 0 I am not sure why.
Code:
//study iomanip to depth for this project
//to define a constant use #define PI 3.14159
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#define PI 3.14159
#define g 9.81
using namespace std;
int main()
{
double Volume,SurfaceArea,Circumference,Area,Sum, SideA;
double Length,Width,Height,SlantHeight,Radius,Value;
int F,K,C; // temperatures
double Number, a, l;
double P,V,R,T
SideA = 15; // This is the base of the triangle
Height = 3;
Area = 1 * SideA * Height / 2;
cout << "\n\t\tThe area of this beautiful triangle = "
<< Area;
//Volume of Sphere
Radius = 6;
Height = 3;
Volume = 4/3 * PI * Radius * Radius;
cout << "\n\t\t The volume of this cone = " << Volume;
//The Sum
Number = 4;
a = 1;
l = 7;
Sum = Number/2 * (a+l);
cout<<"\n\n\n The Sum of this sum = " << Sum;
// I don't know
Radius = 3;
SlantHeight = 4;
Area = PI * Radius * SlantHeight * 1/2;
cout<<"\n\n\n The Area of this = " << Area;
//Celcius
C = 100;
cout << "\n\t\tThe value of 5 / 9 * (F - 32) = "
<< 5/9* (F - 32) << " Farenheit";
//Farenheit
F = 150;
cout <<"\n\t\tThe value of 9 / 5 * C + 32 = "
<< 9/5 * C + 32 <<" Celcius ";
// Last Formula
P = 3;
V = 6;
R = 2;
T = 7;
Number = P*V/T*R;
cout<<"\n\n\t The value of P * V/ T* R = " << Value;
cout << "\n\n\n";
return 0;
}
-
Integer arithmetic. Let's look at the expression
Code:
cout << 5/9 * (F - 32);
In your code, F is of type int, although that doesn't affect how 5/9 is computed.
So what happens?
5 is interpreted by the compiler as being a literal of type int. So is 9. Computing 5/9 therefore involves integer arithmetic - it produces a result of type int with rounding toward zero (since both 9 and 5 are positive). Hence 5/9 is computed as zero. Since F is an int, F - 32 is also computed, with type int. Then the two intermediate results (5/9 which has value zero, and F - 32) are multiplied, giving output of zero.
The fact that you think 5/9 is a fraction does not mean the compiler does.
To get the result you expect, you need to force the division 5/9 to be done as a floating point operation. The way that happens is to convert either the 5 or the 9 (or both) to be floating point. In the following code, each line has the same result.
Code:
cout << 5.0/9 * (F - 32); /* 5.0 is of type double, so 9 is converted to double before doing division. */
cout << 5/9.0 * (F - 32); /* 9.0 is of type double, so 5 is converted to double before doing division. */
cout << 5.0/9.0 * (F - 32); /* 5.0 and 9.0 are both of type double, so dividing them produces a result of type double. */
cout << (double)5/9 * (F - 32); /* This forces the compiler to convert 5 to double. 9 is therefore converted to double before doing the division, and the result is of type double. */
cout << 5/(double)9 * (F - 32); /* This forces the compiler to convert 9 to double. 5 is therefore converted to double before doing the division, and the result is of type double. */
cout << (double)5/(double)9 * (F - 32); /* This forces the compiler to convert both 5 and 9 to double. The result of division is of type double. */
Note that, in every case above, F-32 is computed as an int, which is then converted to double (since 5/9 has been computed as a double) before doing the multiplication.
-
-
It's a little late to reply but I sorted it thanks guys! Changed the 5/9 to 5.0/9.0 and it worked