俺调试了2天程序发现VC除法结果出错,俺用了一个浮点数除以整数,整数进行过数据转换,代码是这样的:
float a,b;
int c;
a=b/(float)c;
结果a的值是错误的
然后我又改成
float a,b,c;
a=b/c;
还是错误的,这里b=1.9577e+008 c=320 a等于9万多,怎么可能?
float a,b;
int c;
a=b/(float)c;
结果a的值是错误的
然后我又改成
float a,b,c;
a=b/c;
还是错误的,这里b=1.9577e+008 c=320 a等于9万多,怎么可能?
像b=1.多
c=320
相除应该是一个比b小的多的数啊……怎么也不可能会等于几万啊……
我快郁闷死了……
CString str;
str.Format("%.10f",a);
AfxMessageBox(str);
VC的调试器对于float类型一般只显示前6位有效数字,后面的就省略了.不过实际的值当然没有省略,用上面的代码打印一下就看清楚了.不信你可以试试这个判断if(a>611781.2)看看结果如何.
那么我朋友的pascal程序算出来的为何是另外一个值?