使用带有欧洲数字系统的 .dll,但我的系统使用美国数字系统

Posted

技术标签:

【中文标题】使用带有欧洲数字系统的 .dll,但我的系统使用美国数字系统【英文标题】:Using .dll with European digit system, but my System uses American digit system 【发布时间】:2019-08-25 08:44:56 【问题描述】:

我正在重新制作我之前的考试以进行练习,我们得到了一个欧洲 .dll 文件,其中包含一个返回字符串的简单方法,例如。 10,20;34,5;12,3; 。问题出在欧洲而不是 .对于点值,我们使用逗号。因此,当我尝试解析它时,它不会给我正确的值或根本不想解析。

// method.call() is just an example for calling the .dll method that returns the European format
double number;
if(!double.TryParse(method.call(), out number)) throw new ArgumentException("this is not a double");

我尝试在 Console.WritLine() 中显示输出,它向我显示了带逗号的数字。所以我想这就是问题所在。因为当我输入带有点的数字时,它可以正常工作。

【问题讨论】:

【参考方案1】:

您可以使用此TryParse 重载。通过传递用于解析的 CultureInfo,您可以切换到欧洲文化。

var value = "12,3";
var culture = CultureInfo.CreateSpecificCulture("de"); // german culture info
if (Double.TryParse(value, NumberStyles.Number, culture, out var number))
    Console.WriteLine("Converted '0' to 1.", value, number);

value = "12.3";
culture = CultureInfo.CreateSpecificCulture("en-US"); // american culture info
if (Double.TryParse(value, NumberStyles.Number, culture, out number))
  Console.WriteLine("Converted '0' to 1.", value, number);

【讨论】:

以上是关于使用带有欧洲数字系统的 .dll,但我的系统使用美国数字系统的主要内容,如果未能解决你的问题,请参考以下文章

使用系统调用调用mono-2.0-sgen.dll获得“不是有效的Win32应用程序”

带有仪表板的最佳应用程序监控系统[关闭]

数字传输系统

如何在系统路径之外使用 dll

Delphi 2009,带有 Oracle 的 DbExpress:无法加载 oci.dll

linux系统可以使用哪些.so文件对应windows中的.dll文件来连接php到ms sql server