2 *******************************************************************************
3 * Copyright (C) 2015, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 *******************************************************************************
6 * significantdigitinterval.h
9 * created by: Travis Keep
12 #ifndef __SIGNIFICANTDIGITINTERVAL_H__
13 #define __SIGNIFICANTDIGITINTERVAL_H__
15 #include "unicode/uobject.h"
16 #include "unicode/utypes.h"
21 * An interval of allowed significant digit counts.
23 class U_I18N_API SignificantDigitInterval
: public UMemory
{
27 * No limits on significant digits.
29 SignificantDigitInterval()
30 : fMax(INT32_MAX
), fMin(0) { }
33 * Make this instance have no limit on significant digits.
41 * Returns TRUE if this object is equal to rhs.
43 UBool
equals(const SignificantDigitInterval
&rhs
) const {
44 return ((fMax
== rhs
.fMax
) && (fMin
== rhs
.fMin
));
48 * Sets maximum significant digits. 0 or negative means no maximum.
50 void setMax(int32_t count
) {
51 fMax
= count
<= 0 ? INT32_MAX
: count
;
55 * Get maximum significant digits. INT32_MAX means no maximum.
57 int32_t getMax() const {
62 * Sets minimum significant digits. 0 or negative means no minimum.
64 void setMin(int32_t count
) {
65 fMin
= count
<= 0 ? 0 : count
;
69 * Get maximum significant digits. 0 means no minimum.
71 int32_t getMin() const {
76 * Returns TRUE if this instance represents no constraints on significant
79 UBool
isNoConstraints() const {
80 return fMin
== 0 && fMax
== INT32_MAX
;
90 #endif // __SIGNIFICANTDIGITINTERVAL_H__