30 lines
737 B
Go
30 lines
737 B
Go
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"
|
|
}
|
|
}
|