package decimal

// RoundingMode specifies how to round decimal values
type RoundingMode int

const (
	// RoundingModeUnspecified defaults to HALF_EVEN
	RoundingModeUnspecified RoundingMode = iota
	// RoundingModeHalfEven rounds to nearest, ties to even (banker's rounding)
	RoundingModeHalfEven
	// RoundingModeHalfUp rounds to nearest, ties away from zero
	RoundingModeHalfUp
	// RoundingModeDown rounds toward zero (truncate)
	RoundingModeDown
)

// String returns the string representation of the rounding mode
func (r RoundingMode) String() string {
	switch r {
	case RoundingModeHalfEven:
		return "HALF_EVEN"
	case RoundingModeHalfUp:
		return "HALF_UP"
	case RoundingModeDown:
		return "DOWN"
	default:
		return "HALF_EVEN"
	}
}
