单片机C语言编程

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:56:54
我用keil编程其中这一句“return (int)((10/100)*500)”的返回值是0,而“return (int)((0.1*500)”的返回值为50.不知有什么说道,请各位高手指点。

没有人回答?我给你说说吧:
先来第一个:要一步一步的执行吆:首先,10/100就等于0了,再乘以后面的500还是0,然后取整还是0.
再来第二个:0.1*500,结果会自动转换成浮点型50.0,然后再取整就是50了.

return (int)((0.1*500)
你好像少个括号吧

已有正确回答了。

(10/100)强制转换成int型数据,是0,故返回值是0
而0.1是float类型的与500相乘,要转换成float型数据,
所以出现你所说的结果