2011-08-24 77 views
2

例如:ToString()方法

double d = 2.24; 

如果文化是 'FR'

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

如果文化是 '恩'

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); 

是否有任何選項來使這個InvariantCulture通過默認的ToString()?

任何想法爲什麼它是由默認完成?

回答

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> 

我建議你傳遞數據時,JavaScript來一直使用JavaScriptSerializer以JSON序列化值:

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

串行器+1 – JohnJohnGa