全球化新 v1.2.1 中的错误?解析 17 种文化(印度、孟加拉国、不丹)的某些数字 returns NaN
Globalize bug in new v1.2.1? Parsing certain numbers returns NaN for 17 cultures (India, Bangladesh, Bhutan)
在 Globalize 的新版本 1.2.1 中,我们看到 17 种文化对 "hundreds" 范围内的数字(例如 100 到 999)的解析失败。
这是一个使用 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
如果我们使用版本 1.1.2 中较早的 Globalize 代码,则行为是正确的(即没有 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 中的问题)导致了这个问题,因此我们也许可以 post 一个相应的问题。
更新:这已在 Globalize 1.2.2 中修复。
感谢您的精彩描述。这绝对是一个错误,我已将其归档为 https://github.com/globalizejs/globalize/issues/660。
在 Globalize 的新版本 1.2.1 中,我们看到 17 种文化对 "hundreds" 范围内的数字(例如 100 到 999)的解析失败。
这是一个使用 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
如果我们使用版本 1.1.2 中较早的 Globalize 代码,则行为是正确的(即没有 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 中的问题)导致了这个问题,因此我们也许可以 post 一个相应的问题。
更新:这已在 Globalize 1.2.2 中修复。
感谢您的精彩描述。这绝对是一个错误,我已将其归档为 https://github.com/globalizejs/globalize/issues/660。