func (x Int128) Float64() float64 {
	var d Int128
	d.Abs(&x)
	f := float64(d.lo) + float64(d.hi)*float64(1<<64)
	if x.Sign() < 0 {
		return -f
	}
	return f
}
Float64 returns the nearest float64 representation of x.
package decimal
type Int128 struct {
	lo uint64
	hi int64
}
var (
	intOne = &Int128{1, 0}
	intTen = &Int128{10, 0}
)
func overflow() {
	panic("Arithmetic overflow")
}
func (z *Int128) SetInt64(x int64) *Int128 {
	z.lo = uint64(x)
	if x < 0 {
		z.hi = -1
	} else {
		z.hi = 0
	}
	return z
}
func (z *Int128) Set(x *Int128) *Int128 {
	if z != x {
		z.lo = x.lo
		z.hi = x.hi
	}
	return z
}
func (x Int128) Int64() int64 {
	return int64(x.lo)
}