浮在C上的麻烦
我在C中有这个小程序,它使用递归函数(使用while循环实现)计算正整数N
平方根x
。 如果我用这个计算x
:
x = (1/2)*(x + N/x) //x0 = 1.0
然后x
继续增长到inf,然后是nan。 但是,如果我使用这个:
x = (x + N/x)/2 //x0 = 1.0
它工作正常,为什么? 谢谢。
1/2
执行整数除法,其结果为0
,将两个操作数或两个操作数更改为double
,例如:
1.0/2