我试图在我的应用程序中使用以下代码,它仅在法语操作系统中抛出异常.你能帮我解决这个问题吗?
using System.Globalization;
using System.Threading;
....
CultureInfo pro = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
SqlCmd.Parameters[Dat.ColumnName].Value = Convert.ToDecimal("0.000001",pro);
Run Code Online (Sandbox Code Playgroud)
这不是法语中的有效小数.在法语中,十进制符号是逗号.
如果您的字符串始终具有十进制符号的句点,则使用当前文化是没有意义的.更好地使用不变文化:
Convert.ToDecimal("0.000001", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
另外一点:
C#知道using指令,因此您不必完全限定所有类型.
System.Globalization.CultureInfo您可以放在using System.Globalization;C#文件的顶部并CultureInfo在代码中使用,而不是写入.
这使您的代码更具可读性.