]>
git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/digitgrouping.cpp
2 * Copyright (C) 2015, International Business Machines
3 * Corporation and others. All Rights Reserved.
5 * file name: digitgrouping.cpp
8 #include "unicode/utypes.h"
10 #include "digitgrouping.h"
11 #include "smallintformatter.h"
15 UBool
DigitGrouping::isSeparatorAt(
16 int32_t digitsLeftOfDecimal
, int32_t digitPos
) const {
17 if (!isGroupingEnabled(digitsLeftOfDecimal
) || digitPos
< fGrouping
) {
20 return ((digitPos
- fGrouping
) % getGrouping2() == 0);
23 int32_t DigitGrouping::getSeparatorCount(int32_t digitsLeftOfDecimal
) const {
24 if (!isGroupingEnabled(digitsLeftOfDecimal
)) {
27 return (digitsLeftOfDecimal
- 1 - fGrouping
) / getGrouping2() + 1;
30 UBool
DigitGrouping::isGroupingEnabled(int32_t digitsLeftOfDecimal
) const {
31 return (isGroupingUsed()
32 && digitsLeftOfDecimal
>= fGrouping
+ getMinGrouping());
35 UBool
DigitGrouping::isNoGrouping(
36 int32_t positiveValue
, const IntDigitCountRange
&range
) const {
37 return getSeparatorCount(
38 SmallIntFormatter::estimateDigitCount(positiveValue
, range
)) == 0;
41 int32_t DigitGrouping::getGrouping2() const {
42 return (fGrouping2
> 0 ? fGrouping2
: fGrouping
);
45 int32_t DigitGrouping::getMinGrouping() const {
46 return (fMinGrouping
> 0 ? fMinGrouping
: 1);
50 DigitGrouping::clear() {