【发布时间】:2012-01-28 19:07:41
【问题描述】:
我运行了这个简单的程序,但是当我从int 转换为double 时,结果为零。零的sqrt 然后显示负值。这是来自在线教程的示例,因此我不确定为什么会发生这种情况。我在 Windows 和 Unix 上试过。
/* Hello World program */
#include<stdio.h>
#include<math.h>
main()
{ int i;
printf("\t Number \t\t Square Root of Number\n\n");
for (i=0; i<=360; ++i)
printf("\t %d \t\t\t %d \n",i, sqrt((double) i));
}
【问题讨论】:
-
你能发布你的代码吗?
-
没有有问题的代码,这个问题无法得到有意义的回答。
-
sqrt 从不返回负值。你的问题很深。您没有意识到我们需要查看您的代码来回答这个问题,这是您的根本问题。希望你不要以为电脑也能做到!
-
大卫,实际上你应该意识到还有另一种可能性,那就是我最初忘记包含代码。请不要在此板上表现出居高临下的态度。
-
很抱歉冒犯了你。我太苛刻了。但其中也有一定的道理。有时慢一点是值得的。在编写代码、编写问题以及在我的情况下编写 cmets 时检查并仔细检查。