gpt4 book ai didi

go - 如何覆盖重载变量

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:38 25 4
gpt4 key购买 nike

我正在试验 go with pi 计算公式,并做了这个:

package main

import (
"fmt"
"math"
)

func bbpformula() {

var result float64

for k := 0.0; k <= 100; k++ {

result += (1 / math.Pow(16.0, k) * ((4 / (8*k + 1)) - (2 / (8*k + 4)) - (1 / (8*k + 5)) - (1 / (8*k + 6))))

}

fmt.Println(result)

}

func main() {

bbpformula()

}

输出是:

3.141592653589793

但是,我想要更多的数字,我尝试使用 math/big 包使变量变大。Float 具有更简单的公式,但算术运算非常困惑且缓慢。

所以我的想法是在结果变量过载(最大容量)时覆盖它,但我不知道该怎么做!

有人可以向我解释一下这是怎么做到的吗?

编辑:尝试使用 if result > math.MaxFloat64 但输出变为空

import (
"fmt"
"math"
)

func bbpformula() {

var result float64
var resultb float64

for k := 0.0; k <= 100; k++ {

result += (1 / math.Pow(16.0, k) * ((4 / (8*k + 1)) - (2 / (8*k + 4)) - (1 / (8*k + 5)) - (1 / (8*k + 6))))
if result > math.MaxFloat64 {
fmt.Println(result)
resultb += (1 / math.Pow(16.0, k) * ((4 / (8*k + 1)) - (2 / (8*k + 4)) - (1 / (8*k + 5)) - (1 / (8*k + 6))))
if resultb == math.MaxFloat64 {
fmt.Println(resultb)
result = 0
}

}

}

}

func main() {

bbpformula()

}

输出:

最佳答案

尝试在 math 包中使用 MaxFloat32MaxFloat64。比如,检查是否 result > math.MaxFloat64

关于go - 如何覆盖重载变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com