#include <iostream>
using namespace std;
int main()
{
int a,h,s;
cout << "a = ";
cin >> a;
cout << "h = ";
cin >> h;
s = a*h/2;
cout << "s = " << s << endl;
return 0;
}
这是一个计算三角形面积的程序;a是底,h是高,s是面积
如果我们输入底3米,高5米,面积应该是7.5平方米,结果程序输出的确是7,而没有输出7.5
为了准确的存储S的值,需要把s定义为单精度实数float
#include <iostream>
using namespace std;
int main()
{
int a,h;
float s;
cout << "a = ";
cin >> a;
cout << "h = ";
cin >> h;
s = a*h/2;
cout << "s = " << s << endl;
return 0;
}
现在我们程序修改成这样,s定义为float了,结果还是输出了7,为什么呢?
s = a*h/2,因为这一步计算时,a,h,2,都是整数,所以运算时还是按整数方式运算,得出了结果仍然是7,然后赋值给浮点变量s,s就成了7.0
我们要把计算这一步改成 s = a*h/2.0
最后就得到了正确的结果!