亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

fmt.Println 不打印整個浮點數

fmt.Println 不打印整個浮點數

Go
慕斯709654 2023-05-22 16:00:04
我正在嘗試制作一個程序來計算 pi 的值并將其打印在終端上,但只有一部分顯示在屏幕上package mainimport (    "fmt")func gregorypi() float64 {    numerator := 1.0    divisor := 3.0    var result float64    for i := 0; i <= 100000000; i++ {            if i%2 == 0 {                    result += numerator / divisor                    divisor += 2            } else {                    result -= numerator / divisor                    divisor += 2            }    }    return (4 * (1 - result))}func main() {    fmt.Sprint(gregorypi())}輸出是:3.1415926435897683我如何使整個值出現?如果它有助于回答問題:我使用的公式是 Gregory-Leibniz 公式
查看完整描述

1 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

功能沖刺

func?Sprint(a?...interface{})?string

Sprint formats 使用其操作數的默認格式并返回結果字符串。當兩者都不是字符串時,在操作數之間添加空格。


fmt.Sprint返回一個string。不要扔掉它;打印它。

例如,

func?main()?{
????s?:=?fmt.Sprint(gregorypi())
????fmt.Println(s)
}

游樂場:https://play.golang.org/p/zOVtJc5HfXT

輸出:

3.1415926435897683

如果您想要比 IEEE 754 64 位浮點數更精確的結果,請使用 Gomath/big包。

例如,


package main


import (

? ? "fmt"

? ? "math/big"

)


func gregorypi(iter int, prec uint) *big.Float {

? ? one := big.NewFloat(1)

? ? two := big.NewFloat(2)

? ? four := big.NewFloat(4)

? ? numerator := big.NewFloat(1).SetPrec(prec)

? ? divisor := big.NewFloat(3).SetPrec(prec)

? ? result := new(big.Float).SetPrec(prec)


? ? for i := 0; i <= iter; i++ {

? ? ? ? if i%2 == 0 {

? ? ? ? ? ? result.Add(result, new(big.Float).Quo(numerator, divisor))

? ? ? ? } else {

? ? ? ? ? ? result.Sub(result, new(big.Float).Quo(numerator, divisor))

? ? ? ? }

? ? ? ? divisor.Add(divisor, two)

? ? }


? ? return new(big.Float).Mul(four, (new(big.Float).Sub(one, result)))


}


func main() {

? ? pi := gregorypi(1000000, 4096)


? ? s := fmt.Sprint(pi)

? ? for i, j := 0, 0; i < len(s); i = j {

? ? ? ? j = i + 60

? ? ? ? if j > len(s) {

? ? ? ? ? ? j = len(s)

? ? ? ? }

? ? ? ? fmt.Println(s[i:j])

? ? }

}

輸出:


3.1415916535917932347126498832691903993221476025342620143148

652250543253683419302770934570540444696092784515646197918416

151531004207388567190381995115109764938931650751911723670828

705935671760975424757204401786734958287682330276123443546400

855990841037108771486255447137253791363986086026524209725177

041621398938122502069099548344075841960714856836014332632487

249750055949826053894250927777836988620276187954914335474236

918693730264540456485214156731536507281567237095178205850787

841887779856892311307656085287982909183503886914799719930651

362811646060939082163336282527001630768619465916054216662233

647867947277285894357821722722774052560440050583160360321106

944441543917458948854721791262992799982426130041196627951982

504267630916391384654303083557011574782570253034162966525670

594481466474403221843818413155653700689258246423537757630787

951957260253561222183715232613769610553278998905210089847178

951692922815021787390361813556619177840043555176857090268624

902791212304201317960964869615176784400855500998688041903616

187746299057333789390884081442894661717258714989758581139759

403617872623424695182488545758897457727485849932980050101014

208290473579625783313281627594640164541223264510142763045401

708614153731722941036904397534247


查看完整回答
反對 回復 2023-05-22
  • 1 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號