ToString()格式无效

时间:2010-11-29 14:47:06

标签: c# asp.net

我有一个奇怪的问题。我们在我们的网站上使用荷兰语和法语语言(nl-NL / fr-FR)

我绑定到gridview,奇怪的是,数值 - saparator(点)不能很好地显示法语(fr-FR)

ASP.NET

protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
    Label lbla_min_10 = new Label();
    lbla_min_10 = e.Row.FindControl("lbla_min_10") as Label;
    lbla_min_10.Text = ((int)DataBinder.Eval(e.Row.DataItem, "a_min_10")).ToString("#,#.###");
    //....
}

e.g。 DB值为24369
在荷兰语中显示24.369和

在法语中显示24 369 - >没有DOT分隔符,但是空格。

我查看了视图源代码,代码看起来一样,除了在NL中的(dot)和FR中的(空格).....

有人有任何想法吗?

为什么荷兰语(nl-NL)罚款而不是法语(fr-FR)呢?

4 个答案:

答案 0 :(得分:2)

尝试使用“nl-BE”和“fr-BE”。在数字方面,它们使用相同的格式。

String.Format("{0:##,###}", 12345); // nl-NL: 12.345
String.Format("{0:##,###}", 12345); // fr-FR: 12 345
String.Format("{0:##,###}", 12345); // nl-BE: 12.345
String.Format("{0:##,###}", 12345); // fr-BE: 12.345

答案 1 :(得分:1)

在'Fr Culture'中,1000和100之间没有分隔符。所以,如果你用荷兰语写出10.000,你可以用法语写一万份。 为什么这是一个问题?

答案 2 :(得分:1)

这就是法国人如何表示成千上万的。有空间。荷兰语使用a。(句号),英语使用a,(逗号)。

因此区域格式正在按预期工作。

答案 3 :(得分:0)

嗯,它的行为正确。问题是,你实际使用的是分组(千)分隔符。如果您希望始终使用句点格式化它,请将CultureInfo.InvariantCulture添加为第二个参数。