jackc/pgx · error

cannot convert NaN to integer

Error message

cannot convert NaN to integer

What it means

Error "cannot convert NaN to integer" thrown in jackc/pgx.

Source

Thrown at pgtype/numeric.go:152

	if bigF, ok := new(big.Float).SetString(src); ok {
		smallF, _ := bigF.Float64()
		src = strconv.FormatFloat(smallF, 'f', -1, 64)
	}

	num, exp, err := parseNumericString(src)
	if err != nil {
		return err
	}

	*n = Numeric{Int: num, Exp: exp, Valid: true}

	return nil
}

func (n *Numeric) toBigInt() (*big.Int, error) {
	if n.NaN {
		return nil, fmt.Errorf("cannot convert NaN to integer")
	} else if n.InfinityModifier != Finite {
		return nil, fmt.Errorf("cannot convert %v to integer", n.InfinityModifier)
	}

	if n.Int == nil {
		return big.NewInt(0), nil
	}

	if n.Exp == 0 {
		return n.Int, nil
	}

	num := &big.Int{}
	num.Set(n.Int)
	if n.Exp > 0 {
		mul := &big.Int{}
		mul.Exp(big10, big.NewInt(int64(n.Exp)), nil)
		num.Mul(num, mul)

View on GitHub (pinned to ec1a0befd2)

When it happens

Trigger: Thrown at pgtype/numeric.go:152 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jackc/pgx@ec1a0befd2 (2026-08-04). Data as JSON: /data/errors/75d3c0dd36bb5829.json. Report an issue: GitHub.