С новой версией 1.2.1 из Globalize мы видим 17 культур, для которых синтаксический анализ не выполняется для чисел в диапазоне «сотни» (например, от 100 до 999).Локализуйте ошибку в новом v1.2.1? Разбор некоторых чисел возвращает NaN для 17 культур (Индия, Бангладеш, Бутан)
Вот конкретный пример использования CLDR JSON data версии 30.0.2 (также протестированы с данными CLDR 30.0.3 с теми же результатами):
var g = new Globalize("en-IN");
g.numberParser()(g.numberFormatter()(1000.01)); // prints 1000.01
g.numberParser()(g.numberFormatter()(999.99)); // prints NaN
Насколько мне известно, форматирование номер 999.99 и то синтаксический анализ не должен давать NaN
, поэтому это выглядит как ошибка. NaN
также является результатом для числа 100, и действительно кажется, что это результат для любого числа с тремя значащими цифрами.
Если мы сосредоточимся только на этапе синтаксического анализа, мы видим, что следующие:
var g = new Globalize("en-IN");
console.log(g.numberParser()("1,000.01")) // prints 1000.01
console.log(g.numberParser()("100.01")) // prints NaN
Если мы используем ранее Globalize код с версии 1.1.2, то поведение является правильным (то есть без каких-либо проблем, NaN).
17 культур, о которых идет речь, являются: as-IN,bn-BD,bn-IN,brx-IN,dz-BT,en-IN,gu-IN,hi-IN,kok-IN,ks-Arab-IN,ml-IN,mr-IN,or-IN,pa-IN,ta-IN,ta-LK,te-IN
. Наши модульные тесты подняли их все после того, как мы обновили до Globalize 1.2.1.
Нам интересно, может ли кто-нибудь быть добрым подтвердить, что они могут воспроизвести это (есть ли шаблон jsfiddle для такого рода вещей?), И какие изменения в новой версии Globalize (при условии, что это проблема в Globalize) вызывает это, поэтому мы можем опубликовать соответствующую проблему.