谁在用VS2008,帮我看一下是不是有个BUG float f = atan(1.0);结果0.000,肯定不对没装过补丁之类,DEBUG编译下的问题。我发汇编跟踪进去看了一下,没用传统浮点,用SSE了,一时看不懂。当然这个问题其它版本应该不会有,真是2008错的话,我就升级一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没遇到过 感觉应该不会 要也是相关math库的问题 VS2008 #include <stdio.h>#include <math.h>int main(){ float f = atan(1.0); printf("%f\n",f); return 0;}输出 0.785398 谢谢!不知道问题在哪里。我的WINXP64?我再试试 感谢各位,问题解决,不是VC的BUG。问题掩盖的项目里面,有点复杂。本来不是我的LINUX项目,我弄到VC里,结果不同,费了好大力气才锁定atan,累得我直接就拿上来问了. 项目文件太多,我没意识到其中一个C文件没INCLUDE math.h, 而是他们自己一个H里DEFINE了atan, 参数是float, GCC编译正确,但是在VC库里必须是double。 反汇编看了一下,问题应该是VC直接用了SSE2的XMMS寄存器做这个计算,而GCC全在传统浮点寄存器里面,造成结果不同。 在OnDraw函数中调用自定义类的图像显示函数时出错 关于使用CDC绘图刷新的问题 ADO出错 一小段SDK的程序,贴出来让大家看看,为何有问题, pe文件的对比,急!急!在线等......................100分 高手指教,用COM接口调用Word,是否可以不用引入类型库?? 得到一个进程的句柄后,怎样再把该进程设置为最高? 如何才能查看陈年老贴? 简单问题,走过这条路或者正在走的同学可以进来看看~~~~!!! 怎样在vc程序中实现拖放操作? MFC下多线程,运行一会程序不结束,但就是不往下运行 加密算法中强制转换丢失数据,解密不完整
#include <stdio.h>
#include <math.h>
int main()
{
float f = atan(1.0);
printf("%f\n",f);
return 0;
}
输出 0.785398
谢谢!
不知道问题在哪里。我的WINXP64?
我再试试
问题掩盖的项目里面,有点复杂。本来不是我的LINUX项目,我弄到VC里,结果不同,费了好大力气才锁定atan,累得我直接就拿上来问了.
项目文件太多,我没意识到其中一个C文件没INCLUDE math.h, 而是他们自己一个H里DEFINE了atan, 参数是float, GCC编译正确,但是在VC库里必须是double。 反汇编看了一下,问题应该是VC直接用了SSE2的XMMS寄存器做这个计算,而GCC全在传统浮点寄存器里面,造成结果不同。