code: func coerceToFloat(unk interface{}) (float64, error) {
  	switch i := unk.(type) {
  	case float64:
  		if math.IsNaN(i) {
  			return i, errors.New("value was NaN")
  		}
  		return i, nil
  	case float32:
  		return float64(i), nil
  	case int:
  		return float64(i), nil
  	case int32:
  		return float64(i), nil
  	case int64:
  		return float64(i), nil
  	case uint:
  		return float64(i), nil
  	case uint32:
  		return float64(i), nil
  	case uint64:
  		return float64(i), nil
  	default:
  		return math.NaN(), fmt.Errorf("value %q could not be coerced to float64", i)
  	}
  }
docs: // coerceToFloat attempts to convert an interface to float64. It should succeed
  // with any numeric input.