法语操作系统中的Covert.ToDecimal问题

Net*_*aji 1 c#

我试图在我的应用程序中使用以下代码,它仅在法语操作系统中抛出异常.你能帮我解决这个问题吗?

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)

Dan*_*rth 6

这不是法语中的有效小数.在法语中,十进制符号是逗号.

如果您的字符串始终具有十进制符号的句点,则使用当前文化是没有意义的.更好地使用不变文化:

Convert.ToDecimal("0.000001", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

另外一点:

C#知道using指令,因此您不必完全限定所有类型.

System.Globalization.CultureInfo您可以放在using System.Globalization;C#文件的顶部并CultureInfo在代码中使用,而不是写入.
这使您的代码更具可读性.