各位新手老手,牛刀小试一下,看看以下语句执行后,s将是什么样的结果。千万不要调试哦,试试自己的知识

84830388 2005-07-26 09:56:35
double d1 = -25.123456;
double d2 = -121.334354;
CString s;
s.Format("%d+%d",d1,d2);
以上语句执行后,s会是什么样的数据呢?
...全文
329 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zh1369 2005-07-26
  • 打赏
  • 举报
回复
我的理解是
根本就没有类型转换,直接把内存变量以%d取入。
是不是可以理解为在机器中double和int就是两种不同的存储方式,
----------------------------------------------------------
原来以为%d,%s等只不过是一些格式符号,今天才知没那么简单!
---------------------------------------------------------
谁来分析一下其中因果!!

AntonlioX 2005-07-26
  • 打赏
  • 举报
回复
不能这么用,违反语法。 虽然编译可通过
zh1369 2005-07-26
  • 打赏
  • 举报
回复
实际结果是
-805667145+-1069998182
zh1369 2005-07-26
  • 打赏
  • 举报
回复
"-25+-121"
隐式类型转换!(没调试)
dirdirdir3 2005-07-26
  • 打赏
  • 举报
回复
%d来显示double的数据肯定错误了。
xlzxlich 2005-07-26
  • 打赏
  • 举报
回复
呵呵,我的是:
-805667145+-1069998182
liupengfei 2005-07-26
  • 打赏
  • 举报
回复
俺不知道,估计是乱七八糟一堆值
handsomerun 2005-07-26
  • 打赏
  • 举报
回复
1630025988

s.Format("%d",d1+d2);

这个结果,偶疯掉了

不调试,杀了偶都猜不到,哎,
smartcomplier 2005-07-26
  • 打赏
  • 举报
回复
"-25+-121"
菲斯可儿 2005-07-26
  • 打赏
  • 举报
回复
晕就一个字。
handsomerun 2005-07-26
  • 打赏
  • 举报
回复
要把结果算出来
s.Format("%f",d1+d2);
handsomerun 2005-07-26
  • 打赏
  • 举报
回复
s.Format("%f+%f",d1,d2);

这才素王道
handsomerun 2005-07-26
  • 打赏
  • 举报
回复
偶的程序运行出来是这玩意
-805667145+-1069998182
一条晚起的虫 2005-07-26
  • 打赏
  • 举报
回复
double 用“%d”?呵呵,一下子算不出来
“-?????+-????”
一条晚起的虫 2005-07-26
  • 打赏
  • 举报
回复
double和int的存贮方式不一样
int,四个字节
double,8个字节,有表示小数点位置的标志
估计%d的时候,就取了4个字节
孤剑 2005-07-26
  • 打赏
  • 举报
回复
"-25+-121"

16,551

社区成员

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

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

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