2011-08-26 53 views
0

ASP.NET MVC不綁定「1.5」double值(因爲當前文化的格式無效)。所以我試圖解析它當前的文化manualy。解析當前文化的double值

我的解決方案是用當前文化的有效浮動分隔符替換「1.5」浮點數。

如何在當前文化中用有效分隔符替換浮動分隔符?

你有更好的解決方案嗎?

+0

你爲什麼不改變當前的文化到美國? –

+0

因爲應用程序是多語言的。 – Freshblood

+0

那麼爲什麼你的用戶不尊重他們當前的文化,並使用'.'作爲小數分隔符而不是他們自己的文化小數分隔符? –

回答

0

只需指定要使用的文化解析時:

CultureInfo culture = new CultureInfo(Request.UserLanguages[0]); 
return double.Parse("1.5", culture.NumberFormat); 

更多細節見the documentation

+0

我記得我測試了這個,並且工作錯誤..我會再次檢查。 – Freshblood

+0

@Floodblood你有可能是錯誤的文化。 – Justin

0

如果你只是想擁有「1.5」解析無論是文化,試試這個:

var culture = System.Globalization.CultureInfo.GetCultureInfo("en-US"); 
Double.Parse("1.5", culture.NumberFormat); 

創建該EN-US區域性的實例,並告訴解析器在這種特殊情況下使用它。

+0

「1.5」在土耳其文化中成爲15.0。它適用於En-Us – Freshblood

+3

而不是像'en-US'這樣的任意文化,在解析數字時使用'System.Globalization.CultureInfo.InvariantCulture'可能會更好。 –

+0

@Steve Haigh - 謝謝 – Freshblood