INNER CODE UNIT · Go
ok
ericlagergren/decimal · big.go:736
ok = xc < maxMantissa || (xc&(xc-1)) == 0
case x.exp > 0:
f = float64(x.compact) * math.Pow10(x.exp)
ok = x.compact < maxMantissa && !math.IsInf(f, 0) && !math.IsNaN(f)
case x.exp < 0:
f = float64(x.compact) / math.Pow10(-x.exp)
ok = x.compact < maxMantissa && !math.IsInf(f, 0) && !math.IsNaN(f)
default:
parse = true
}
if parse {
f, _ = strconv.ParseFloat(x.String(), 64)
ok = !math.IsInf(f, 0) && !math.IsNaN(f)
}
if x.form&signbit != 0 {
f = math.Copysign(f, -1)