å¯æ¯ä½ 举çè¿ä¸ªä¾åä¸æ¯ç¨float强å¶ç±»å转æ¢äºä¹
追çæä»¥è¯´ä½ åæ¥çç¨åºæ¯ä¸ä¼è¿è¡å¸¦å°æ°ç计ç®ï¼å¦æä¸ç¨å¼ºå¶æ°æ®ç±»å转æ¢çè¯æ²¡æå°æ°é¨å被ä¿çä¹å°±è°ä¸ä¸åèäºå
¥ã
对ä¸èµ·ï¼è¯¯ä¼äºï¼æåé¢è¿å¥è¯ï¼å¨è®¡ç®(*p1)/(*p2)æ¶...
æ¯éå¯¹ä½ çåæ¥ç¨åºè¯´çã
é£ä½ 讲çè¿ä¸ªä¾åï¼è®¡ç®æ¶æ¯*på*qå åå«åæ´æ°å¾åºç»æåfloatåï¼è¿æ¯*på*qå åfloatåå计ç®ï¼
追çb=((float)(*p1)/(*p2)+0.5)+7;è¿ä¸ªä¾åä¸ï¼å å°p1ä¸çæ°æ®ååºï¼å强å¶æ°æ®ç±»å转æ¢æfloatç¶ååè¿è¡è®¡ç®ï¼è®¡ç®é¡ºåºä¸ºï¼
b=(int)((((float)(*p1))/(*p2)+0.5)+7);
åæ°*p1
转æ¢æfloatå
ç±äºæfloatåæ°æ®åä¸é¤æ³è¿ç®ï¼å¯ç¨æµ®ç¹è¿ç®åå
åæ°*p2
è¿è¡æµ®ç¹è¿ç®ï¼ç»ææ¯æµ®ç¹ç
ç»æå 0.5å®ç°æ´æ°é¨ååèäºå ¥
ç¨æµ®ç¹è¿ç®åå
å®ç°æµ®ç¹è®¡ç®å 7
ç±äºåébæ¯æ´å½¢çï¼å°æµ®ç¹æ°çæ´æ°é¨åæªåä¸æ¥èµå¼ã
计算过程中就已经取整了?为什么不是先等于7.几再约等于7?
追答程序就是这么走的,再说这里的取整就是删除尾数
追问那取整是删除尾数而不是四舍五入的原理是什么呢?
追答阿哥,这是编c语言的人设定的,,,
追问我是问原理哎!这是由数据的存储方式决定的,其实你不知道可以承认不知道的。
追答奥⊙▽⊙,这我真的不知道
4/6抛弃余数
所此可知,同类型数据相运算,结果还是该类型数据
异类型数据运算,结果是,较“大”的类型
比如说4.0/6,这里先把6做个类型转换为6.0,int型到Double型。然后做,4.0/6.0得出结果,为Double型
异类型数据运算,其中一个类型,必须能够隐式转换为另一个类型,否则编译报错。
在计算机存储结构中,除法运算,其结果是用两个寄存器暂存的,一个是存余数,另一个是存抛弃余数后的结果。
比如说,4/6,一个寄存器存0,另一个寄存器存4.所以,两int型数据相除,其结果,就取前者的值。至于浮点运算,挺复杂的,当你学到,计算机组成原理时,肯定会讲到。
p2=&m
我怎么这么丢三落四