2017-07-26 52 views
2

的specifc一部分,我有一个数字:要获得numberin C#

Int64 a = 5021390010301; 

我想得到这样

Int64 b = 30; 

我想:

string b = Convert.ToString(a).Substring(0 , 12); 

这给我502139001030。我也试过:

string b = Convert.ToString(a).Substring(11 , 12); 

但是,这也没有奏效。

+5

'Substring(10,2)' – DavidG

+0

它是如何工作的? 'string b'的值是多少? –

+0

'a.ToString()。子串(11,2)' – Adam

回答

6

string.Substring第二个参数是字符数取,最后一个字符的而不是索引。所以,你需要这样的事情,而不是:

string b = Convert.ToString(a).Substring(10, 2); 
1

String.Substring第二个参数是长度不结束索引和第一索引为0

int b = int.Parse(a.ToString().Substring(10, 2)); 
2

如果你看看子串,文档在MSDN,你会看到第二个参数实际上是字符串的长度。

如果你想要得到的字符串的最后一个季度,你必须写:

string b = convert.ToString(a).Substring(9 , 3); 

既然你想要一个整数,你必须分析它:

int result = Int32.Parse(b); 
1

你也可以解决它,没有它转换为字符串第一:

Int64 b = a % 1000/10; 

这只要你不使用浮动或工作双倍。