code: func nullableNumber(schema *spec.Schema, isRequired bool) bool {
  	if nullable := nullableExtension(schema.Extensions); nullable != nil {
  		return *nullable
  	}
  	hasDefault := schema.Default != nil && !swag.IsZero(schema.Default)
  
  	isMin := schema.Minimum != nil && (*schema.Minimum != 0 || schema.ExclusiveMinimum)
  	bcMin := schema.Minimum != nil && *schema.Minimum == 0 && !schema.ExclusiveMinimum
  	isMax := schema.Minimum == nil && (schema.Maximum != nil && (*schema.Maximum != 0 || schema.ExclusiveMaximum))
  	bcMax := schema.Maximum != nil && *schema.Maximum == 0 && !schema.ExclusiveMaximum
  	isMinMax := (schema.Minimum != nil && schema.Maximum != nil && *schema.Minimum < *schema.Maximum)
  	bcMinMax := (schema.Minimum != nil && schema.Maximum != nil && (*schema.Minimum < 0 && 0 < *schema.Maximum))
  
  	nullable := !schema.ReadOnly && (isRequired || (hasDefault && !(isMin || isMax || isMinMax)) || bcMin || bcMax || bcMinMax)
  	return nullable
  }
docs: // nullableNumber makes a number a pointer when we want to distinguish the zero value from no value set.
  // This is the case when:
  // - a x-nullable extension says so in the spec
  // - it is **not** a read-only property
  // - it is a required property
  // - boundaries defines the zero value as a valid value:
  //   - there is a non-exclusive boundary set at the zero value of the type
  //   - the [min,max] range crosses the zero value of the type