TypeConverter如何转换culture-specificdouble?我对TypeConverter类有疑问。它适用于CultureInvariant值,但无法转换特定的文化,如英语千位分隔符。下面是一个我无法开始工作的小测试程序。这就是问题所在:)-ConvertFromString抛出异常并显示以下消息“2,999.95不是Double的有效值”。以及内部异常“输入字符串的格式不正确”。.使用系统;使用System.Globalization;使用System.ComponentModel;类程序{staticvoidMain(){try{varculture=newCultureInfo("en");vartypeConverter=TypeDescriptor.GetConverter(typeof(double));双值=(double)typeConverter.ConvertFromString(null,culture,"2,999.95");Console.WriteLine("值:"+值);}catch(Exceptione){Console.WriteLine("Error:"+e.Message);编辑:链接到Connect上的错误报告从TypeDescriptor.GetConverter(typeof(double))获得的DoubleConverter最终使用以下参数调用Double.Parse:Double.Parse("2,999.95",NumberStyles.Float,(IFormatProvider)文化.GetFormat(typeof(NumberFormatInfo)));问题是NumberStyles.Float不允许使用千位分隔符,这就是您遇到问题的原因。您可以在MicrosoftConnect上提交此问题,或者看看是否有其他人遇到同样的问题。如果还使用NumberStyles.AllowThousands调用Double.Parse,则不会出现此问题。以上是C#学习教程:HowtouseTypeConvertertoconvertculture-specificdouble?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注—Double.Parse("2,999.95",NumberStyles.Float|NumberStyles.AllowThousands,(IFormatProvider)culture.GetFormat(typeof(NumberFormatInfo)));本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
