为了账号安全,请及时绑定邮箱和手机立即绑定

有进行代码我没的修改,结果为什么不是2而这么大??

https://img1.sycdn.imooc.com//5d6bab8d000131eb10860186.jpg有进行代码我没的修改,结果为什么不是2而这么大??

正在回答

6 回答

printf链接的变量,其数据类型与输出格式不匹配.

那么如果你想要用%d格式输出,相对应的就应该是int一类的整型变量.

而在之前的定义中,num被定义为一个double型的浮点型变量,不是整数,

所以在输出之时,不应该链接num,而是对num进行的强制类型转换,

如果不好理解,可以依照左栏的例题中,定义一个新的int型变量Num,即int Num=(int)num,

在输出的时候可以链接你定义的int变量Num.

同样,二楼所链接的(int)num的值,就是我们这里是Num的值,

1 回复 有任何疑惑可以回复我~

转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换,所以是printf("num的整数部分是%d\n,(int)num")

0 回复 有任何疑惑可以回复我~

他们好像都没有达到关键,题主问的是为什么浮点型数据num2.5用%d形式输出会是图中的那个结果,虽然我是个小白,但我认真看了,然后.........同问


1 回复 有任何疑惑可以回复我~

源代码double型与%d冲突。改成int型or改成%f


0 回复 有任何疑惑可以回复我~

    printf("num的整数部分是%d\n,(int)num")

0 回复 有任何疑惑可以回复我~

int 型

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有进行代码我没的修改,结果为什么不是2而这么大??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信