digit grouping type supports Indian Number Grouping

This commit is contained in:
MaysWind
2025-08-15 23:58:15 +08:00
parent 2f8d4ad5e4
commit 274aa6a17c
19 changed files with 100 additions and 38 deletions
+13 -13
View File
@@ -30,11 +30,17 @@ export function appendDigitGroupingSymbol(value: number | string, options: Numbe
options = {};
}
if (!isNumber(options.digitGrouping) || options.digitGrouping === DigitGroupingType.None.type) {
if (!isNumber(options.digitGrouping)) {
return textualValue;
}
if (textualValue.length <= 3) {
const digitGroupingType = DigitGroupingType.valueOf(options.digitGrouping);
if (!digitGroupingType || !digitGroupingType.enabled) {
return textualValue;
}
if (textualValue.length <= 1) {
return textualValue;
}
@@ -44,6 +50,10 @@ export function appendDigitGroupingSymbol(value: number | string, options: Numbe
textualValue = textualValue.substring(1);
}
if (textualValue.length <= 1) {
return textualValue;
}
const digitGroupingSymbol = options.digitGroupingSymbol || DigitGroupingSymbol.Default.symbol;
const decimalSeparator = options.decimalSeparator || DecimalSeparator.Default.symbol;
@@ -63,17 +73,7 @@ export function appendDigitGroupingSymbol(value: number | string, options: Numbe
}
}
let newInteger = '';
if (options.digitGrouping === DigitGroupingType.ThousandsSeparator.type) {
for (let i = integerChars.length - 1, j = 0; i >= 0; i--, j++) {
if (j % 3 === 0 && j > 0) {
newInteger = digitGroupingSymbol + newInteger;
}
newInteger = integerChars[i] + newInteger;
}
}
let newInteger = digitGroupingType.format(integerChars, digitGroupingSymbol);
if (negative) {
newInteger = `-${newInteger}`;