读书人

一个容易的程序(新手)

发布时间: 2013-09-15 19:58:13 作者: rapoo

一个简单的程序(新手)
#include <iostream>
using namespace std;
long long p_C,p_W;
long double percent;
int main()
{
cin>>p_W;
cout<<endl;
cin>>p_C;
percent=p_C/p_W*100;
cout<<percent<<endl;
return 0;
}
给p_W赋值和p_C(任意),然后求percent。为什么当p_W大于p_C时,输出总是0呢?是不是精度有问题啊?
[解决办法]
是的,用float就可以了

[解决办法]
p_C/p_W*100; 如果不想使用符点运算,可以这样写

p_C*100/p_W; 注意, 前提是p_C*100不会溢出.
[解决办法]
long long 类型在除法运算时是不保留小数的,
所以当p_W大于p_C时,商为0,结果就为0了。
使用double,float类型就可以了
[解决办法]

percent=(long double)p_C/(long double)p_W*100.0;

读书人网 >C++

热点推荐