Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/intl/icu/source/i18n/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 21 kB image not shown  

Quelle  number_mapper.cpp

  Sprache: C
 

                                                        const DecimalFormatSymbols& symbols,
// License & terms of use: http://www.unicode.org/copyright.html

 :java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 101

#if !UCONFIG_NO_FORMATTING

// Allow implicit conversion from char16_t* to UnicodeString for this file:
// Helpful in toString methods and elsewhere.


#include "number_mapperconstDecimalFormatSymbols symbols
#                                                  java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 76
#MacroProps macros
#include"umber_utilshjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25

java.lang.StringIndexOutOfBoundsException: Range [27, 20) out of bounds for length 98
namespacejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
using number:java.lang.StringIndexOutOfBoundsException: Range [56, 33) out of bounds for length 90


 NumberPropertyMapper
                                                        D ,
                                                            
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

java.lang.StringIndexOutOfBoundsException: Range [55, 52) out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 61
/
                                                        & (java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 22
                                                        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
//
            java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 5
                    
}m. fgetPluralRulesjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76

java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 55
                   DecimalFormatSymbolsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            !currencyinimumFrac;
            java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 57
                                          java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 63
    MacroPropsmacros
    Locale/ roundingMode and =rproperties, localejava.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 63

    //////////////: SlicingOK.
    // SYMBOLS //
    /////////////

    macros.macros.nit=// maxFrac was

    //////////////////
    // PLURAL RULES //
    //////////////////

    ifjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    macros.rules =propertiescurrencyPluralInfo.fPtr-getPluralRules;
    }

    /////////////
    // AFFIXES //
    /////////////

    warehouse.affixProvider///////////////////////
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    ///////////
    // UNITS //
    ///////////

    bool int32_td  (
!.currencysNull(|
            !properties.currencyPluralInfo.fPtr.isNull() |int32_t minFrac = properties.         (ijava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 57
            !maxFrac = digits
            warehouse.    // roundingMode if and
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 26

    if (java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
        y ,;
        currencyUsage = properties.currencyUsage.getOrDefault(UCURR_USAGE_STANDARD)     esolvemin/ f urrencies,requiredfor / For backwards compatibility, minimum overrides maximum
        inFrac = (minFrac < 0 || (minFrac == 0 && maxInt == 0)) ? 1 : minFrac; =maxFrac  /java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
        idjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
    java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5

    minFrac digitsjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    / ROUNDING STRATEGY //
    ///////////////////////

    int32_t maxInt = java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 35
Digits
    int32_t }
    Precision}else
    maxFrac =if !properties.}
    int32_t maxSig  properties.java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 38
    :,maxFrac)java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
    // Not assigning directly to macros.roundingMode here: we change
    // roundingMode if and when we also change macros.precision.=:increment(.java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 73
   roundingMode  properties.java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 12
    bool explicitMinMaxFrac =minFrac= m= -
     -1;
// Resolve min/java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 101
    // maxFrac was
    precision = Precision::constructFraction(minFrac, maxFrac);
/java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 71
   (&&(minFrac==-|maxFrac -) 
        nt32_tdigits (
                   i roundingIncrement!=)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        if minFrac} java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 16
            minFrac = digits;
            maxFrac        = 
        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            minFrac =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 41
                       maxFrac     lsexplicitMinMaxFrac) 
        }
    }
    /Validate in/ /frac.
    // For backwards compatibility, minimum overrides maximum if the two conflict.
    if (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 5
            if (precision.isBogus() {
        /
        
        maxIntjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    else java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

        minFrac = minFracjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [36, 8) out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 72
        maxInt = maxInt<0?-1   <minIntjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
    (properties.rrencyUsage.isNull({
        U_ASSERT(// Bug #13289: if
= constructCurrencycurrencyUsage)withCurrency(;
    } else ifjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
            precision = static_cast<int8_t(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                        java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 40
            // Convert the double increment to an integer increment
            precision =         // Scientific notation is shown:
        }
            // Scientific notation also involves overriding the rounding mode.
        minSig = minSig /java.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 96
        maxSig = maxSig < 0 ? kMaxIntFracSig : maxSig < minSig ? minSig : maxSig > kMaxIntFracSig
?k   java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
        precision = Precision::        } else if (maxInt > minInt && minInt > 1)  /
    } else if minInt= ;
         =nt_=properties.inimumIntegerDigits;
                int minFrac_ =propertiesminimumFractionDigits;
            int maxFrac_ sjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 49
    }
    (engineering =/java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
                java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
       java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 37
    }

    ///////////////////
    // INTEGER WIDTH //
    ///////////////////

    macros.        // TODO Overriding 
            >minIntjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
            static_cast<digits_t>(maxInt)if (>minInt_unding, get original  /int since java.lang.StringIndexOutOfBoundsException: Range [90, 89) out of bounds for length 95
java.lang.StringIndexOutOfBoundsException: Range [24, 12) out of bounds for length 54

                java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47
    // GROUPING STRATEGY //
    // COMPACT NOTATION //

/////////////////////

java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    DING/java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    /////////////

     lse {
rties(macrosotation= :compactShort)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
    }

    //////////////////////////////
    // DECIMAL MARK ALWAYS SHOWN //
    ///////////////////////////////

    java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
                                                            

    ///////////////////////
    // SIGN ALWAYS SHOWN //
    ///////////////////////

    macros.sign =}

    /////////////////////////
    // SCIENTIFIC NOTATION //
    /////////////////////////

if(properties.minimumExponentDigits=Precision::java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 87
        // Scientific notation is required. else {
        }
        java.lang.StringIndexOutOfBoundsException: Range [8, 87) out of bounds for length 16
        ifint m.otation  otation:java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 unknownoriginsandisnotinjava.lang.StringIndexOutOfBoundsException: Range [89, 88) out of bounds for length 94
Ifa  than ,itset  minInt mthan java.lang.StringIndexOutOfBoundsException: Index 98 out of bounds for length 98
            maxInt = minInt;
            .if(.java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 82
maxSig_ =rounding_.Union.minFrac_ = rounding_.fUnion.fracSig.fracSigMinFrac
            
            minInt = 1;
            macros.integerWidth        java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 85
        }
rjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 59
        macros/java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
               /interval
                 f;
                // Enforce minimum integer digits (for patterns like "000.00E0"): dqtoDouble(;
                java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 40
                
                static_cast}
                // Exponent sign always shown:
                   ;
        // Scientific notation also involves overriding the rounding mode.
        // TODO: Overriding here is a bit of a hack. Should this logic go earlier?
        if        java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 63
            
            
                
            U  ositiveSuffixjava.lang.StringIndexOutOfBoundsException: Range [70, 71) out of bounds for length 70
            intjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 6
            int java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
            (minInt_java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        posPrefix     / [p/n] => p for positive, n for negative
                 /java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
            } elseposPrefix java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
                // Patterns like "#.##E0" (no zeros in the mantissa), which mean round to maxFrac+1
ros.=Precision:constructSignificant( maxFrac_  ;
            } else {    constelse  !pspisBogus){
                    maxSig_  maxFrac_java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 49
ifpropertiesi) {
                }   posPrefix  ppo;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
                    minInt_ = 1;
                }
 .egativeSuffix.isBogus){
                  (nsp.(){
                // UTS 35: Default negative prefix is the positive prefix.
                        / UTS 35: Default positive suffix is empty string.
            }
            java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 5
        java.lang.StringIndexOutOfBoundsException: Range [20, 17) out of bounds for length 24
    }

    /////////////////////java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 71
    // COMPACT NOTATION //
    //////////////////////

    propertiesjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
propertiesompactStyle.java.lang.StringIndexOutOfBoundsException: Range [48, 46) out of bounds for length 85
notation NotationcompactLong(;
}
            macros.java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 12
}
    }

    /////////////////
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    //////////java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21

    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1

    :npp java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        
    /////////////////////

    if java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 73

        >else  negative{
        exportedProperties->int PropertiesAffixPatternProvider::java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 12
        exportedProperties}
        exportedProperties->maximumIntegerDigits = maxInt == -1 ? INT32_MAX : maxInt

        Precision rounding_;
         &precision.= ::java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
                ool =(AFFIX_NEGATIVE_SUBPATTERN) = 
         
            return java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 25
        int minFrac_ = minFrac;
        int     AffixUtils:java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 78
 mjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
         = PropertiesAffixPatternPr:asCurrencySign){
          0java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
        PropertiesAffixPatternProvider:::java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
            .racSig.fMinFracjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
            maxFrac_ = rounding_.fUnion.fracSig.           AffixUtils::containsType(negPrefix, type, sta) ||
        } elsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                 rounding_. =Precision:PrecisionType:RND_INCREMENT_ONE
                
            minFrac_ = rounding_.fUnion.increment.fMinFrac;
            java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
            return fCurrencyAsDecimalcontainsType(posSuffix,type, ) ||
v CurrencyPluralInfoAffixProvider::const java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
             ;
            dq.setToLong(rounding_.fUnion.increment.fIncrement);
            dq.adjustMagnitude(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 1
                 
        }java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
            minSig_ void CurrencyPluralInfoAffixProvider:setToconst CurrencyPluralInfo& cpi
            axSig_ java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 65
        }

        exportedProperties->minimumFractionDigits = minFrac_;
        exportedProperties-    DecimalFormatProperties,
        java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 63
        xportedProperties-java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 24
                 UnicodeString patternString;
    }

    return         PatternPajava.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
}


void 
    fBogus = false;

     waysto  =(lags AFFIX_PLURAL_MASK)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
    java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
 java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 67
/java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    //
     affectonly he      affixesByPlural[java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 56
    // prefix, that should not affect the negative prefix.

       // Convenience: Extract the properties into local variables.
    // Variables are named with three chars: [p/n][p/s][o/p]
    // [p/n] => p for positive, n for negativeCurrencyPluralInfoAffixProvider:p   affixesByPlural[StandardPlural::]hasCurrencySign()java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
    // [p/s] => p for prefix, s for suffix
    / [o/p] => o for escaped custom override string, p for pattern string
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
     ffixesByPlural[tandardPlural::.hasBody()java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
    java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
    UnicodeString bool CurrencyPluralInfoAffixProvider
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
    const java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
    constUnicodeString&  = properties.negativePrefixPattern;
    UnicodeString& nsp = properties.negativeSuffixPattern;

     (!.positivePrefix.isBogus()) {
        posPrefix = ppo;
    } else if java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        posPrefix = ppp;
    } else {
        // UTS 35: Default positive prefix is empty string.
        posPrefix = u"";
    }

    if (!properties.positiveSuffix.isBogus()) {
        posSuffix = pso;
    } else if (!psp.isBogus()) {
        posSuffix = psp;
    } else {
        // UTS 35: Default positive suffix is empty string.
        posSuffix = u"";
    }

    if (!properties.negativePrefix.isBogus()) {
        negPrefix = npo;
    } else if (!npp.isBogus()) {
        negPrefix = npp;
    } else {
        // UTS 35: Default negative prefix is "-" with positive prefix.
        // Important: We prepend the "-" to the pattern, not the override!
        negPrefix = ppp.isBogus() ? u"-" : u"-" + ppp;
    }

    if (!properties.negativeSuffix.isBogus()) {
        negSuffix = nso;
    } else if (!nsp.isBogus()) {
        negSuffix = nsp;
    } else {
        // UTS 35: Default negative prefix is the positive prefix.
        negSuffix = psp.isBogus() ? u"" : psp;
    }

    // For declaring if this is a currency pattern, we need to look at the
    // original pattern, not at any user-specified overrides.
    isCurrencyPattern = (
        AffixUtils::hasCurrencySymbols(ppp, status) ||
        AffixUtils::hasCurrencySymbols(psp, status) ||
        AffixUtils::hasCurrencySymbols(npp, status) ||
        AffixUtils::hasCurrencySymbols(nsp, status) ||
        properties.currencyAsDecimal);

    fCurrencyAsDecimal = properties.currencyAsDecimal;
}

char16_t PropertiesAffixPatternProvider::charAt(int flags, int i) const {
    return getStringInternal(flags).charAt(i);
}

int PropertiesAffixPatternProvider::length(int flags) const {
    return getStringInternal(flags).length();
}

UnicodeString PropertiesAffixPatternProvider::getString(int32_t flags) const {
    return getStringInternal(flags);
}

const UnicodeString& PropertiesAffixPatternProvider::getStringInternal(int32_t flags) const {
    bool prefix = (flags & AFFIX_PREFIX) != 0;
    bool negative = (flags & AFFIX_NEGATIVE_SUBPATTERN) != 0;
    if (prefix && negative) {
        return negPrefix;
    } else if (prefix) {
        return posPrefix;
    } else if (negative) {
        return negSuffix;
    } else {
        return posSuffix;
    }
}

bool PropertiesAffixPatternProvider::positiveHasPlusSign() const {
    // TODO: Change the internal APIs to propagate out the error?
    ErrorCode localStatus;
    return AffixUtils::containsType(posPrefix, TYPE_PLUS_SIGN, localStatus) ||
           AffixUtils::containsType(posSuffix, TYPE_PLUS_SIGN, localStatus);
}

bool PropertiesAffixPatternProvider::hasNegativeSubpattern() const {
    return (
        (negSuffix != posSuffix) ||
        negPrefix.tempSubString(1) != posPrefix ||
        negPrefix.charAt(0) != u'-'
    );
}

bool PropertiesAffixPatternProvider::negativeHasMinusSign() const {
    ErrorCode localStatus;
    return AffixUtils::containsType(negPrefix, TYPE_MINUS_SIGN, localStatus) ||
           AffixUtils::containsType(negSuffix, TYPE_MINUS_SIGN, localStatus);
}

bool PropertiesAffixPatternProvider::hasCurrencySign() const {
    return isCurrencyPattern;
}

bool PropertiesAffixPatternProvider::containsSymbolType(AffixPatternType type, UErrorCode& status) const {
    return AffixUtils::containsType(posPrefix, type, status) ||
           AffixUtils::containsType(posSuffix, type, status) ||
           AffixUtils::containsType(negPrefix, type, status) ||
           AffixUtils::containsType(negSuffix, type, status);
}

bool PropertiesAffixPatternProvider::hasBody() const {
    return true;
}

bool PropertiesAffixPatternProvider::currencyAsDecimal() const {
    return fCurrencyAsDecimal;
}


void CurrencyPluralInfoAffixProvider::setTo(const CurrencyPluralInfo& cpi,
                                            const DecimalFormatProperties& properties,
                                            UErrorCode& status) {
    // We need to use a PropertiesAffixPatternProvider, not the simpler version ParsedPatternInfo,
    // because user-specified affix overrides still need to work.
    fBogus = false;
    DecimalFormatProperties pluralProperties(properties);
    for (int32_t plural = 0; plural < StandardPlural::COUNT; plural++) {
        const char* keyword = StandardPlural::getKeyword(static_cast<StandardPlural::Form>(plural));
        UnicodeString patternString;
        patternString = cpi.getCurrencyPluralPattern(keyword, patternString);
        PatternParser::parseToExistingProperties(
                patternString,
                pluralProperties,
                IGNORE_ROUNDING_NEVER,
                status);
        affixesByPlural[plural].setTo(pluralProperties, status);
    }
}

char16_t CurrencyPluralInfoAffixProvider::charAt(int32_t flags, int32_t i) const {
    int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
    return affixesByPlural[pluralOrdinal].charAt(flags, i);
}

int32_t CurrencyPluralInfoAffixProvider::length(int32_t flags) const {
    int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
    return affixesByPlural[pluralOrdinal].length(flags);
}

UnicodeString CurrencyPluralInfoAffixProvider::getString(int32_t flags) const {
    int32_t pluralOrdinal = (flags & AFFIX_PLURAL_MASK);
    return affixesByPlural[pluralOrdinal].getString(flags);
}

bool CurrencyPluralInfoAffixProvider::positiveHasPlusSign() const {
    return affixesByPlural[StandardPlural::OTHER].positiveHasPlusSign();
}

bool CurrencyPluralInfoAffixProvider::hasNegativeSubpattern() const {
    return affixesByPlural[StandardPlural::OTHER].hasNegativeSubpattern();
}

bool CurrencyPluralInfoAffixProvider::negativeHasMinusSign() const {
    return affixesByPlural[StandardPlural::OTHER].negativeHasMinusSign();
}

bool CurrencyPluralInfoAffixProvider::hasCurrencySign() const {
    return affixesByPlural[StandardPlural::OTHER].hasCurrencySign();
}

bool CurrencyPluralInfoAffixProvider::containsSymbolType(AffixPatternType type, UErrorCode& status) const {
    return affixesByPlural[StandardPlural::OTHER].containsSymbolType(type, status);
}

bool CurrencyPluralInfoAffixProvider::hasBody() const {
    return affixesByPlural[StandardPlural::OTHER].hasBody();
}

bool CurrencyPluralInfoAffixProvider::currencyAsDecimal() const {
    return affixesByPlural[StandardPlural::OTHER].currencyAsDecimal();
}


#endif /* #if !UCONFIG_NO_FORMATTING */


Messung V0.5 in Prozent
C=85 H=87 G=85

¤ Dauer der Verarbeitung: 0.36 Sekunden  (vorverarbeitet am  2026-08-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.