繁体   English   中英

在德语系统上执行Double.Parse会导致逗号而不是小数点

[英]Double.Parse on a german system result in comma instead of decimal point

我有以下几点:

 private static string someValue = "0.1";

我需要将其转换为double以便进行一些计算。 在德国系统上,我得到的转换值为0.1,而不是0.1,我需要将其转换为0.1。 我尝试了以下方法:

double d = Convert.ToDouble(s_valueDeadband10Percent, CultureInfo.InvariantCulture.NumberFormat); // still getting 0,1

double d = Convert.ToDouble(s_valueDeadband10Percent, CultureInfo.InvariantCulture); // still getting 0,1

有任何想法吗 ?

在德国系统上,我得到的转换值为0.1,而不是0.1,我需要将其转换为0.1。

不,您不会得到任何一个。 您得到一个double值,大约是十分之一。 double值根本不是文本上的“东西”。 可以将其转换为文本,但这是不同的操作。 您需要找到该操作的位置,然后更改以使用CultureInfo.InvariantCulture ,如果您确实想要一个文本值。 但是,如果完全不用转换就可以返回字符串,那会更好。

当然,如果可能的话,您应该将静态变量更改为double开头:

private static double someValue = 0.1;

这样,您也可以避免解析。

我认为您正在将double的字符串表示形式与实际值混淆。

您的代码应将字符串“ 0.1”很好地转换为0.1d。 每当您打印它时(在调试器中,在控制台上或在网页上),都需要将其转换回字符串,这在您的情况下可能会隐式发生。 double只是一些浮点位,其本身对其打印表示形式没有定义。

如果在德国文化中完成了从双精度到字符串的转换,您将看到“ 0,1”。

尝试打印此

d.ToString(CultureInfo.InvariantCulture)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM