3

这个小提琴在 IE 和 FF 中返回正确的“5,5”值,但在 Chrome 中它返回“5.5”

小提琴:http: //jsfiddle.net/4tvSH/

Globalize.culture("sv-SE");
alert(Globalize.format(5.5));

Globalize 插件中是否存在错误?

编辑:

这很奇怪,在 Web.Config (MVC3) 我有这个

<globalization enableClientBasedCulture="true" />

这意味着客户端设置了文化,chrome和FF都报告sv-SE,所以加载的全球化文化是sv-SE,就像上面的小提琴一样。

但是如果我在 Chrome 的第 767 行调试上面的代码

return culture.name.length ? value.toLocaleString() : value.toString();

value.toLocaleString() 将返回 en-US 格式

这行得通,但它是一个黑客..

//Fixes a bug in Globalize/Chrome where Globalize.format returns en-US format even with sv-SE
if($.browser.webkit == true) {
    Globalize.orgFormat = Globalize.format;
    Globalize.format = function(value, format) {
        if(format == null) {
            format = "N";
        }

        return this.orgFormat(value, format);
    };
}
4

1 回答 1

0

Chrome 确实似乎以与 firefox 不同的方式处理 value.toLocaleString(),但是我认为这应该被视为一个 Globalize 错误。

I have corrected this behaviour in my Globalize fork, which was as simple as removing that toLocaleString iirc.

于 2012-05-31T19:25:17.180 回答