code: func IsFloat64AJSONInteger(f float64) bool {
  	if math.IsNaN(f) || math.IsInf(f, 0) || f < minJSONFloat || f > maxJSONFloat {
  		return false
  	}
  	fa := math.Abs(f)
  	g := float64(uint64(f))
  	ga := math.Abs(g)
  
  	diff := math.Abs(f - g)
  
  	// more info: https://floating-point-gui.de/errors/comparison/#look-out-for-edge-cases
  	if f == g { // best case
  		return true
  	} else if f == float64(int64(f)) || f == float64(uint64(f)) { // optimistic case
  		return true
  	} else if f == 0 || g == 0 || diff < math.SmallestNonzeroFloat64 { // very close to 0 values
  		return diff < (epsilon * math.SmallestNonzeroFloat64)
  	}
  	// check the relative error
  	return diff/math.Min(fa+ga, math.MaxFloat64) < epsilon
  }
docs: // IsFloat64AJSONInteger allow for integers [-2^53, 2^53-1] inclusive