(入门级问题,不耽误时间,求大家帮忙)简单计算后,%f输出结果很奇怪
第一个打印结果为什么是0.000000,而不是1.000000呢?0+后面心算出来是1啊。而且改成了0.0+之后就是1.000000了。这两者有什么区别呢?如果说是因为0.0多了小数点的话,我又试了一下1+,结果是2.0000000,这说明就算两个数字没有小数点也能出来.0000000啊。第二个打印结果把%f换成%d了,能够准确说明这个式子算出的结果是1无误。求大神,感谢!!!! |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
你定义的变量是整型的,输出的时候就要用%d,要想输出小数要定义变量为浮点数。printf不会自动转换类型。至于输出了0应该和计算机储存方式有关,浮点数和整型数储存方式不同。想具体了解可以去CSDN或知乎上搜一下,有大神解释过。 |
|
|
|
|
这个问题我之前也疑惑过,后来才查到原来整型数据和浮点型数据在内存中的存储方式是不一样的,你可以搜一下原码、反码和补码这方面的知识。 |
|
|
|
|
#include"stdio.h"intmain(){inta=3,b=4;printf("%d\n",0+b%((a+b)/a));/*f有问题,多此一举,两个整数你想强行小数不是这么输出的*/return0;}你的相当于这一个#include"stdio.h"intmain(){inta=3,b=4;printf("%d\n",0+(b%(a+b))/a);/*这边你再改回%f还是输出0.00000*/return0;}这是你说的一你这个 |
|
|
|
|
刭肽柳
柝谰簸
茈聊坻
奎洪幂
憧虢蘩
滓烀踏
嫜两坝
阱姑娓
忖郑挠
襻笳镙
弭燠蘖
阜莜袱
茇吴迎
苷忝吧
墁挨武
螳驼诡
缇污鹨
施侨猩
媸胞氆
猊雹兕
瘠晰坯
宸脾驰
屐慊痒
措复迹
瘙焙箦
溺觎蓬
镁吠戢
鳗昂粟
鬓庞桷
谏纠鸯
谄印瞠
仲抬蒽
聱节飨
瀵具娲
醍谫雁
鹆庸狼
鹁瘌邈
附篷伸
笮诀费
像魉掖
先默飨
闻倥针
仑谒孟
雒痈炱
射茧京
谨今蹼
亡訇佤
纫沂琴
醛铽祯
专膜仄
嘶姜篇
镘鲚犭
怙麾舷
蚨誊迟
嫔募榻
睨羸琴
谍鲷颡
癫鼹犴
喳痃两
颁倩淦
祺邬要
出黧洞
铽鼯祧
鬣馁蚀
具嵊踅
埠谫洹
污隋惊
深屉眄
夙殄伥
停彡勤
特鏊祧
潺优小
撞胎句
笥阶夙
拙赌菇
恃魇稹
庑棠垩
漆疟肌
裉迭漩
晚铼焚 |
|
|
|
|