ASP.NET MVC不綁定「1.5」double值(因爲當前文化的格式無效)。所以我試圖解析它當前的文化manualy。解析當前文化的double值
我的解決方案是用當前文化的有效浮動分隔符替換「1.5」浮點數。
如何在當前文化中用有效分隔符替換浮動分隔符?
你有更好的解決方案嗎?
ASP.NET MVC不綁定「1.5」double值(因爲當前文化的格式無效)。所以我試圖解析它當前的文化manualy。解析當前文化的double值
我的解決方案是用當前文化的有效浮動分隔符替換「1.5」浮點數。
如何在當前文化中用有效分隔符替換浮動分隔符?
你有更好的解決方案嗎?
只需指定要使用的文化解析時:
CultureInfo culture = new CultureInfo(Request.UserLanguages[0]);
return double.Parse("1.5", culture.NumberFormat);
更多細節見the documentation。
我記得我測試了這個,並且工作錯誤..我會再次檢查。 – Freshblood
@Floodblood你有可能是錯誤的文化。 – Justin
如果你只是想擁有「1.5」解析無論是文化,試試這個:
var culture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
Double.Parse("1.5", culture.NumberFormat);
創建該EN-US區域性的實例,並告訴解析器在這種特殊情況下使用它。
「1.5」在土耳其文化中成爲15.0。它適用於En-Us – Freshblood
而不是像'en-US'這樣的任意文化,在解析數字時使用'System.Globalization.CultureInfo.InvariantCulture'可能會更好。 –
@Steve Haigh - 謝謝 – Freshblood
你爲什麼不改變當前的文化到美國? –
因爲應用程序是多語言的。 – Freshblood
那麼爲什麼你的用戶不尊重他們當前的文化,並使用'.'作爲小數分隔符而不是他們自己的文化小數分隔符? –