Golang游览运动平方根

肯尼:

我试图找出为什么1e-10在此代码中使用。我在做练习时一直坚持Next, change the loop condition to stop once the value has stopped changing (or only changes by a very small delta). See if that's more or fewer iterations在不弄清楚之后,我搜索并找到了其他人的解决方案。

在许多解决方案中,我将其1e-10视为循环中if语句的一部分for在Golang中,这是否意味着1e升为(-10)幂?Golang是自动的吗?所以基本上我通常会以为它将写为1e^(-10)

package main

import (
    "fmt"
    "math"
)

func Sqrt(x float64) float64 {
    z := float64(2.)
    s := float64(0)
    for i := 0; i < 10; i++ {
        z = z - (z*z - x) / (2 * z)
        if math.Abs(z-s) < 1e-10 {
            break
        }
        s = z
    }
    return z
}

func main() {
    fmt.Println(Sqrt(2))
    fmt.Println(math.Sqrt(2))
}

感谢您提供的任何/所有帮助!

peterSO:

1e-10 是浮点文字,其值是1乘以10。

Go编程语言规范

浮点文字

浮点文字是浮点常量的十进制表示形式。它具有一个整数部分,一个小数点,一个小数部分和一个指数部分。整数和小数部分由十进制数字组成;指数部分是e或E,后跟一个可选的带符号十进制指数。整数部分或小数部分之一可以被省略;小数点之一或指数可能会被忽略。

float_lit = decimals "." [ decimals ] [ exponent ] |
            decimals exponent |
            "." decimals [ exponent ] .
decimals  = decimal_digit { decimal_digit } .
exponent  = ( "e" | "E" ) [ "+" | "-" ] decimals .

0.
72.40
072.40  // == 72.40
2.71828
1.e+0
6.67428e-11
1E6
.25
.12345E+5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章