1

С новой версией 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) вызывает это, поэтому мы можем опубликовать соответствующую проблему.

ответ

Смежные вопросы