C# C-“替换”&引用;“至”&引用;双倍价值

C# C-“替换”&引用;“至”&引用;双倍价值,c#,replace,double,comma,C#,Replace,Double,Comma,我必须读取一个.txt文件并显示它。数据中的双精度值用“.”写入。当我启用德语时,它不会将其解释为逗号。现在我试着检查语言是否设置为德语,并将所有的“.”替换为“,”。这些值存储在名为“\u value”的数组中,但它不起作用。代码如下: if ((System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName) == "de") { for

我必须读取一个.txt文件并显示它。数据中的双精度值用“.”写入。当我启用德语时,它不会将其解释为逗号。现在我试着检查语言是否设置为德语,并将所有的“.”替换为“,”。这些值存储在名为“\u value”的数组中,但它不起作用。代码如下:

 if ((System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName) == "de")
            {
                for (int i = 0; i < _value.Length; i++)
                {
                    String temp_var = Convert.ToString(_value[i]);
                    temp_var.Replace(".", ",");
                    _value[i] = Convert.ToDouble(temp_var);
                }
            }
if((System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterIsLanguageName)==“de”)
{
对于(int i=0;i<\u value.Length;i++)
{
字符串temp_var=Convert.ToString(_值[i]);
临时变量替换(“.”,“,”);
_值[i]=转换为双值(临时变量);
}
}
有什么理由不只是暂时的

using System.Threading;
using System.Globalization;

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

您还可以提供执行转换时使用的区域性,而不是检查语言:

// Convert string to double from the invariant culture, which treats "." as decimal:
double d = Convert.ToDouble(_value[i], CultureInfo.InvariantCulture);

// Convert double to string using the current culture, which may happen to be German and uses a ",":
string s = Convert.ToString(d);

// Or convert double to string using the specific German culture:
string s = Convert.ToString(d, new CultureInfo("de-DE"));

我不明白的是,
\u值
数组显然已经是一个
double[]
-因此这些更改必须在代码的前面进行,从字符串到double的转换实际上发生了。

我可以获得更多信息吗?它在哪里失败了?你在手表上看到了什么?
double
s中没有任何分隔符-如果你将字符串重新设置为
double
s,则不会考虑对字符串所做的任何操作。您可能想继续阅读,以了解
double
变量中实际存储的内容。我看到了任何东西。它又给我显示了错误的号码。我只需要将“.”改为“,”并将其存储回数组中,但数组将值与“,”分开,那么我该怎么办?解决了问题!:)。Replace不会修改当前实例的值。它返回一个经过修改的新字符串。因此,您需要使用另一个字符串或同一实例中的返回值。是。这取决于程序的启动位置。@uzi42tmp所以有时候确实有一个点作为分隔符?这在代码中看起来如何?当我的数组看起来像[12.34,13.45]数字应该看起来像12,34,但在一个数组中,这是不可能的,还是我错了?@uzi42tmp我更改了我的答案,将其转换回字符串。如何将值存储回数组而不导致错误?当我将CultureInfo.InvariantCulture添加到他将值存储到数组的行中时,这一点很有效!谢谢