double类型变量赋值后,前后数据显示不一致

yvettesharp 2018-02-28 10:52:37
直接上图



我实在是搞不明白是哪里出问题了,各位大神,有谁遇到过这样的问题?
...全文
783 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2018-03-01
  • 打赏
  • 举报
回复
强制字节对齐不应该出现这种状况. 除非你在自己计算地址. 但看你出问题的程序并没有这么做
yvettesharp 2018-03-01
  • 打赏
  • 举报
回复
问题原因找到了,是由于代码里#pragma pack (1)这句话导致,强制字节1字节对齐,结构体数据乱了
赵4老师 2018-02-28
  • 打赏
  • 举报
回复
xiaohuh421 2018-02-28
  • 打赏
  • 举报
回复
我猜你是在release模式下调试吧. 你确定是debug模式下调试的? 还有, 按你的程序逻辑执行, 他们本身就应该相等, 当然就不会进入断点了.
yvettesharp 2018-02-28
  • 打赏
  • 举报
回复
引用 4 楼 xiaohuh421 的回复:
我猜你是在release模式下调试吧.
你确定是debug模式下调试的?

还有, 按你的程序逻辑执行, 他们本身就应该相等, 当然就不会进入断点了.




肯定是debug调试了,从显示上看不相等,按常理应该进入断点,可是断点没有响应,就也就是认为它们相等了
Lafite_MoMo 2018-02-28
  • 打赏
  • 举报
回复
建议你电脑重启后再debug
yvettesharp 2018-02-28
  • 打赏
  • 举报
回复
感觉不是精度引起的,我修改了精度模型为严格


然后执行代码,还是会看到赋值出现问题,并且double转成int也会出现问题
Eleven 2018-02-28
  • 打赏
  • 举报
回复
浮点数的精度问题,浮点数的判断不是这样判断!=, ==判断的,而是x1 - x2 < 0.00000001这之类的,至于是0点几几,取决你的要求精度

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧