big.NewFloat(float64(2.1234))
float64(2.1234)
преобразуется в Go float64
(64-разрядная IEEE-754 с плавающей запятой) с точностью 53 бита.
Например,
package main
import (
"fmt"
"math/big"
)
func main() {
// 53 bits of precision (float64)
a := big.NewFloat(float64(2.1234))
fmt.Println(a.Text(102, 18))
x := "2.1234"
// 53 bits of precision
f, _, err := big.ParseFloat(x, 10, 53, big.ToNearestEven)
if err != nil {
panic(err)
}
fmt.Println(f.Text(102, 18))
// 256 bits of precision
f, _, err = big.ParseFloat(x, 10, 256, big.ToNearestEven)
if err != nil {
panic(err)
}
fmt.Println(f.Text(102, 18))
}
Детская площадка: https://play.golang.org/p/z5iK90lQcD9
Выход:
2.123400000000000176
2.123400000000000176
2.123400000000000000