为什么答案是0.500000而不是0.5
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/23 08:16:12
为什么答案是0.500000而不是0.5
上图
![](http://img.wesiedu.com/upload/4/73/473b6ffe96d456464657cf31fb3206ca.jpg)
上图
![](http://img.wesiedu.com/upload/4/73/473b6ffe96d456464657cf31fb3206ca.jpg)
![为什么答案是0.500000而不是0.5](/uploads/image/z/8722162-10-2.jpg?t=%E4%B8%BA%E4%BB%80%E4%B9%88%E7%AD%94%E6%A1%88%E6%98%AF0.500000%E8%80%8C%E4%B8%8D%E6%98%AF0.5)
在命令行输入命令format long即可.
要想再转换过来,用命令format short.
那个估计不行,你得出结果以后,有效数字就自己取不就行了.
再问: 为什么会出现那么多0补位?
再答: 因为你a和b都是整形的,在做除法的时候被截断了,因为除数按理说应该是0.5对吗?但是你要把它放到一个整形中是不行的,则0.5倍截断成0了。 这样就可以解决问题:printf("%f",(float)a/b);试试看吧。 其实都一样
再问: 不对!我的不是整形而是float型,到判断是否运算的是1.0/2.0
要想再转换过来,用命令format short.
那个估计不行,你得出结果以后,有效数字就自己取不就行了.
再问: 为什么会出现那么多0补位?
再答: 因为你a和b都是整形的,在做除法的时候被截断了,因为除数按理说应该是0.5对吗?但是你要把它放到一个整形中是不行的,则0.5倍截断成0了。 这样就可以解决问题:printf("%f",(float)a/b);试试看吧。 其实都一样
再问: 不对!我的不是整形而是float型,到判断是否运算的是1.0/2.0