我试图重新计算out文件的E值。因此,我必须找到E=(24.6)的所有值乘以7.6,然后写回E=(186.96)。
我有得到24.6值的代码,可以将它转换为双24,6,但我想要双倍为24.6
你能帮我把程序中的小数分隔器设置为。而不是系统定义。
static void parseCommand(string commands)
{
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
Double conv = 0;
string[] command = commands.Split(' ');
foreach (var commando in command)
{
if (commando != "")
{
if (commando.Contains("E=("))
{
Console.WriteLine(Regex.Match(commando, @"\d+(\.\d+)?").Value + " Regex.Match");
conv = Convert.ToDouble(Regex.Match(commando, @"\d+(\.\d+)?").Value, nfi);
System.Console.WriteLine(conv + " converted");
System.Console.WriteLine(commando + " original\n");
}
}
}控制台输出
24.6 Regex.Match
24,6 converted
E=(24.6) original转换为24.6
发布于 2020-08-05 14:26:27
在打印double值时,还需要指定数字格式/区域性。您可以在nfi语句中使用WriteLine:
System.Console.WriteLine(conv.ToString(nfi) + " converted");或者,正如汉斯所说,您可以使用CultureInfo.InvariantCulture而不是nfi来进行解析和格式化:
conv = Convert.ToDouble(Regex.Match(commando, @"\d+(\.\d+)?").Value, CultureInfo.InvariantCulture);
// ...
System.Console.WriteLine(conv.ToString(CultureInfo.InvariantCulture) + " converted");https://stackoverflow.com/questions/63266874
复制相似问题