j*****3 发帖数: 106 | 1 float f = 4/3;
printf("f == %d", f);
为什么结果是0而不是1? |
S**I 发帖数: 15689 | 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这是哪个火星的C语法?
【在 j*****3 的大作中提到】 : float f = 4/3; : printf("f == %d", f); : 为什么结果是0而不是1?
|
d******b 发帖数: 73 | 3 这个问题可能涉及 printf 的实现,这有一篇供参考,但是太偏了 直接 cout << f 或
者 printf("...", (int)f) 不好么?
http://www.cnblogs.com/XiaoHDeBlog/p/3327723.html |
j*****3 发帖数: 106 | 4 不好意思,说错了,但是结果为什么是0?
【在 S**I 的大作中提到】 : : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这是哪个火星的C语法?
|
j*****3 发帖数: 106 | 5 其实我是想比较一下在这种情况下输出的区别%d, %g, %f
%f 结果是1.00000
%g 结果是1
%d 结果是0
为什么会是0哪?
【在 d******b 的大作中提到】 : 这个问题可能涉及 printf 的实现,这有一篇供参考,但是太偏了 直接 cout << f 或 : 者 printf("...", (int)f) 不好么? : http://www.cnblogs.com/XiaoHDeBlog/p/3327723.html
|
S**I 发帖数: 15689 | 6 不要问为什么;这是undefined behavior。
【在 j*****3 的大作中提到】 : 不好意思,说错了,但是结果为什么是0?
|