ToString()方法基于文化在Web应用程序中

时间:2011-08-24 17:39:05

标签: c# .net asp.net

例如:

double d = 2.24;

如果文化是'fr'

d.ToString() -> "2,24" 

如果文化是'en'

d.ToString() -> "2.24" 

这种隐含的基于文化的演员阵容可能会产生很多错误。

在aspx.cs中

<script>
var n = <% Response.Write(d.ToString()); %> // if 'fr' n = 2,24 -> js syntax error
</script>

我们可以通过

来避免这种情况
Convert.ToString(d, CultureInfo.InvariantCulture);

是否有任何选项可以默认为ToString()创建此InvariantCulture

知道为什么默认完成它?

1 个答案:

答案 0 :(得分:3)

您可以使用web.config的<globalization>元素并设置文化和UI文化。例如:

<system.web>
    <globalization culture="en-US" uiCulture="en-US">
</system.web>

顺便代替:

<script>
    var n = <% Response.Write(d.ToString()); %> // if 'fr' n = 2,24 -> js syntax error
</script>

我建议您始终使用JavaScriptSerializer以便在将数据传递给javascript时将JSON序列化值:

<script>
    var n = <%= new JavaScriptSerializer.Serialize(d) %>;
</script>