(入门级问题,不耽误时间,求大家帮忙)简单计算后,%f输出结果很奇怪
第一个打印结果为什么是0.000000,而不是1.000000呢?0+后面心算出来是1啊。而且改成了0.0+之后就是1.000000了。这两者有什么区别呢?如果说是因为0.0多了小数点的话,我又试了一下1+,结果是2.0000000,这说明就算两个数字没有小数点也能出来.0000000啊。第二个打印结果把%f换成%d了,能够准确说明这个式子算出的结果是1无误。求大神,感谢!!!! |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
你定义的变量是整型的,输出的时候就要用%d,要想输出小数要定义变量为浮点数。printf不会自动转换类型。至于输出了0应该和计算机储存方式有关,浮点数和整型数储存方式不同。想具体了解可以去CSDN或知乎上搜一下,有大神解释过。 |
|
|
|
|
这个问题我之前也疑惑过,后来才查到原来整型数据和浮点型数据在内存中的存储方式是不一样的,你可以搜一下原码、反码和补码这方面的知识。 |
|
|
|
|