<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 使用math包和math/big包處理數字類型 ### 實踐 1. 創建math.go: ``` package math import ( "fmt" "math" ) // Examples 演示了math包的基本應用 func Examples() { //開平方示例 i := 25 // i 是整型,所以需要轉型 result := math.Sqrt(float64(i)) // 25開方結果是 5 fmt.Println(result) // ceil能夠獲取大于或等于輸入值的最小整數值 result = math.Ceil(9.5) fmt.Println(result) // floor能夠獲取大于或等于輸入值的最大整數值 result = math.Floor(9.5) fmt.Println(result) // math包同樣提供了常用的常數 fmt.Println("Pi:", math.Pi, "E:", math.E) } ``` 2. 創建fib.go: ``` package math import "math/big" // 全局變量 var memoize map[int]*big.Int func init() { // 初始化map memoize = make(map[int]*big.Int) } // Fib打印斐波納契序列的第n個數字,它將返回1以表示任何<0 ...它是遞歸計算并使用big.Int因為int64會快速溢出 func Fib(n int) *big.Int { if n < 0 { return nil } // 基礎條件 if n < 2 { memoize[n] = big.NewInt(1) } // 檢查我們是否存儲它之前進行了計算 if val, ok := memoize[n]; ok { return val } // 使用map存儲然后添加前2個fib值 memoize[n] = big.NewInt(0) memoize[n].Add(memoize[n], Fib(n-1)) memoize[n].Add(memoize[n], Fib(n-2)) return memoize[n] } ``` 3. 建立main.go: ``` package main import ( "fmt" "github.com/agtorre/go-cookbook/chapter3/math" ) func main() { math.Examples() for i := 0; i < 10; i++ { fmt.Printf("%v ", math.Fib(i)) } fmt.Println() } ``` 4. 這會輸出: ``` 5 10 9 Pi: 3.141592653589793 E: 2.718281828459045 1 1 2 3 5 8 13 21 34 55 ``` ### 說明 math包使得在Go中執行復雜的數學運算成為可能。本節以執行復雜的浮點操作并根據需要在類型之間進行轉換。 值得注意的是,即使使用float64,某些浮點數仍可能存在舍入錯誤,下一節演示了一些處理此問題的技巧。 math/big部分展示了一個遞歸的Fibonacci序列。如果你修改main.go循環遠遠超過10次,如果使用它而不是big.Int,程序將很快溢出int64。這個包還有一些輔助函數,可以將big類型轉換為其他類型。 * * * * 學識淺薄,錯誤在所難免。歡迎在群中就本書提出修改意見,以饗后來者,長風拜謝。 Golang中國(211938256) beego實戰(258969317) Go實踐(386056972)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看