【问题标题】:Trouble with float on C [duplicate]C浮动问题[重复]
【发布时间】:2014-10-30 01:26:32
【问题描述】:

我有一个 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

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

【问题讨论】:

    标签: c floating-point square-root


    【解决方案1】:

    1/2 进行整数除法,其结果为0,将其中一个或两个操作数更改为double,例如:

    1.0/2
    

    【讨论】:

    • 速度快得离谱,谢谢!
    • 虽然简单地写.5更快...
    猜你喜欢
    • 2013-05-11
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2020-03-08
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多