mar*_*ryj 3 floating-accuracy go
有这个代码
import (
"fmt"
"math/big"
)
func main() {
var b1,b2,b3,bigSum big.Float
b1.SetFloat64(25.3)
b2.SetFloat64(76.2)
b1.SetFloat64(53.1)
bigSum.Add(&b1, &b2).Add(&b3, &bigSum)
fmt.Println(bigSum) // {53 0 0 1 false [9317046909104082944] 8}
fmt.Println(&bigSum) // 129.3
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题
为什么我必须bigSum作为参考传递(通过使用&)来获得正确的答案,否则我们将找回一个对象?
Println在Go工作怎么样?我的意思是它如何知道它应该适用于不同类型的格式?
Println确定该值是否实现Stringer接口.如果是,那么它将调用String()to get格式化值.big.Float为指针接收器实现它,所以你必须传递一个引用.否则Println将检测到它是一个结构并使用反射打印所有字段| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |