浮在C上的麻烦

时间:2014-10-30 01:26:32

标签: c floating-point square-root

我在C中有这个小程序,它使用递归函数(使用while循环实现)计算正整数x的平方根N。如果我使用此计算x

x = (1/2)*(x + N/x) //x0 = 1.0

然后x继续增长到inf,然后是nan。但是,如果我使用它:

x = (x + N/x)/2 //x0 = 1.0

它工作正常,为什么?谢谢。

1 个答案:

答案 0 :(得分:6)

1/2执行整数除法,结果为0,将操作数更改为double,例如:

1.0/2