存储在字符串到变量转换中的c#数字
我有一个有4个数字的字符串存储在字符串到变量转换中的c#数字,c#,string,numbers,double,converter,C#,String,Numbers,Double,Converter,我有一个有4个数字的字符串 string str ="1234 456 78 4.25847"; 我需要从中得到4个变量 INTA as 1234 int b as 456 int c as 78 双d为4.25847 关于如何提取变量有什么建议吗?字符串始终保持不变,末尾有3个整数和1个双精度。您可以将原始字符串拆分为字符串数组,然后解析每个项目: string data = "1234 456 78 4.25847"; string[] parts = data.Split(' ');
string str ="1234 456 78 4.25847";
我需要从中得到4个变量
INTA as 1234
int b as 456
int c as 78
双d为4.25847
关于如何提取变量有什么建议吗?字符串始终保持不变,末尾有3个整数和1个双精度。您可以将原始字符串拆分为字符串数组,然后解析每个项目:
string data = "1234 456 78 4.25847";
string[] parts = data.Split(' ');
int a = int.Parse(parts[0]);
int b = int.Parse(parts[1]);
int c = int.Parse(parts[2]);
double d = double.Parse(parts[3], System.Globalization.CultureInfo.InvariantCulture);
您可以这样做:
string numbers = "1234 456 78 4.25847";
string[] splitedNumbers = numbers.Split(' ');
int a = Convert.ToInt32(splitedNumbers[0]);
int b =Convert.ToInt32(splitedNumbers[1]);
int c = Convert.ToInt32(splitedNumbers[2]);
double d = Convert.ToDouble(splitedNumbers[3]);
检查此代码(它将不起作用):
问题是不同的文化有不同的小数点分隔符,所以这不适用于俄罗斯地区(我认为还有其他一些地区)。但是在手动设置NumberFormatInfo后,所有操作都正常。您在代码的哪一部分遇到问题?@AlekDepler-操作代码正常?double d=double.Parse(“4.25847”);->输入字符串的格式不正确。“double.Parse”是否依赖于语言环境?在我的系统中,数字delimeter是“,”和double.Parse(“425847”);很好。@AdrianThompsonPhillips-检查我的帖子我已经更新了我的答案,我打算用“lt-lt”作为文化(OPs自己的文化),但我怀疑这是否有效,因为我认为立陶宛使用逗号作为分隔符。
var CultureName =
"ru-RU";
//"en-US";
System.Globalization.NumberFormatInfo nfi = new System.Globalization.CultureInfo(CultureName, false).NumberFormat;
var numbers_str = "1234 456 78 4.25847";
var numbers_array = numbers_str.Split(' ');
var a = int.Parse(numbers_array[0], nfi);
var b = int.Parse(numbers_array[1], nfi);
var c = int.Parse(numbers_array[2], nfi);
var d = double.Parse(numbers_array[3], nfi);