package week1
import math.abs
object newton {
def abs(x:Double) = if (x < 0) -x else x
def sqrtIter(guess: Double, x: Double): Double =
if (isGoodEnough(guess, x)) guess
else sqrtIter(improve(guess, x), x)
def isGoodEnough(guess: Double, x: Double)=
abs(guess*guess - x < 0.001)
def improve(guess: Double, x: Double) =
(guess + x/guess)/2
def sqrt (x:Double)= sqrtIter(1.0,x)
}
在第
行abs (guess*guess - x <0.001)
eclipse显示以下错误
类型不匹配; found:需要布尔值:Double newton.sc / progfun / src / week1第10行Scala问题
我该如何解决这个问题?这是我第一次运行scala,我正在使用Coursera中目前正在进行的Functional Programmming类的确切代码。
答案 0 :(得分:3)
这一行
abs (guess*guess - x <0.001)
返回一个布尔值,因为它首先计算guess * guess - x,然后将其与0.001进行比较。
你应该这样做
abs (guess*guess - x) < 0.001