vc++除法出错 我用的是vs2008,一个简单的除法,double t = (jd - 2451545.0) / 365250.0,其中jd是double型的,但是这样的同一个算式在win32项目,和mfc项目中的极端结果却不一样,win32的结果是对的,但是我们的项目是在mfc中做的,不知道是不是因为设置的原因,如果是的,应该怎么设置啊?跪求各位大侠的解答! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和mfc项目中的极端结果却不一样,win32的结果是对的==什么叫做极端结果?是计算的精度么? 你用的都是基础类型 跟mfc 没关系吧!问题应该不在计算这里!多打几个F9 看看吧 重新编译一遍,注意debug和release. 没什么大的不同,但是vs默认的是unicode。不知道是否和你说的问题相关。“极端结果却不一样”?不是很清楚你要说什么。 比于:jd = 260057.50000000000,这个时侯,在WIN32中的计算结果是:-5.9999657768651611,但是在MFC中同样的算试计算结果是:-5.9999656677246094。虽然是小数点后第七位开始错的,但是差异导致的问题却很大,而且,我分别在两个工程中将算式还原(也就是做逆运算),都能还原成原来的结果(我想这个应该表明了结果不是计算错误,而是一种计算方式的选择出了问题吧),另外:如果在两个工程中分别将运算类型换成float,计算的结果却是一致的,但是精度不够,呵呵,搞死人。 代码:在win32和MFC中一样,我就不具体一一列举了,编译环境都是realse,换成debug后发现结果还是一样。在楼上我已经举了一个输入的例子了。Point3d computePosition(double jd) const { double t = (jd - 2451545.0) / 365250.0; .................................... }; 子对话框comboBox控件的选择项无法传递给主窗口??? AlphaBlend与TransparentBlt能组合使用 拆分窗口大小设置问题 组件编程的时候,属性和方法的名称问题 再开一贴!解决后200分同时送!关于非模式对话框如何不覆盖它的主对话框的问题!在线等! 如何在对话框中实现上下滚动条呀? 怎样压缩输入FLASH的mp3? 我的对话框这是怎么了? 看了半年别人的程序,现在一动手就有问题了,一个很菜的问题,请帮帮我! 关于“如何用模板类定义对象的问题” GIF类,得不出HBITMAP 网络基础问题?
==什么叫做极端结果?是计算的精度么?
问题应该不在计算这里!
多打几个F9 看看吧
中同样的算试计算结果是:-5.9999656677246094。虽然是小数点后第七位开始错的,但是差异导致的问题却很大,而且,我分别在两个工程中将算式还原(也就是做逆运算),都能还原成原来的结果(我想这个应该表明了结果不是计算错误,而是一种计算方式的选择出了问题吧),另外:如果在两个工程中分别将运算类型换成float,计算的结果却是一致的,但是精度不够,呵呵,搞死人。
Point3d computePosition(double jd) const
{
double t = (jd - 2451545.0) / 365250.0; .................................... };