【发布时间】:2014-02-15 06:09:17
【问题描述】:
发现double/double的结果不正确:
double i = 3.3, j = 1.1;
int k = i/j;
printf("%d\n", k);
结果是 2,为什么?
调试:
但是:
float i = 3.3, j = 1.1;
int k = (int)(i/j);
printf("%d\n", k);
调试:
【问题讨论】:
-
当然结果是 2。这里真正的问题是为什么你认为它会是其他任何东西,特别是你认为结果应该是什么?
-
@HighPerformanceMark 我认为您能够自己回答这些真正的问题 :)。
-
我认为应该是 3 而不是 2。
-
为什么你认为应该是
3?如果double是double,您认为i/j的价值是多少? -
只是好奇你从哪里得到调试屏幕:P
标签: c floating-point int double