C# 整数中的独立数字(不带字符串函数)

C# 整数中的独立数字(不带字符串函数),c#,math,.net-core,C#,Math,.net Core,我有一个只有两个数字的整数,假设n=52,我想把这两个数字分开,比如5和2 左数字: 这给了我n=52的左=5 右数字: 错误 左边的数字总是正确的,但右边的数字有时是对的,有时是错的,下面是测试用例: 1. 29, 48 , 10 , 50 : Correct 2. 52 : Wrong, gives 5 , 1 3. 99 : Wrong, gives 9 , 8 4. 26 : Wrong, gives 2 , 5 解决方案1: int left =int.Parse( n.t

我有一个只有两个数字的整数,假设n=52,我想把这两个数字分开,比如5和2

左数字: 这给了我n=52的左=5

右数字: 错误 左边的数字总是正确的,但右边的数字有时是对的,有时是错的,下面是测试用例:

 1. 29, 48 , 10 , 50 : Correct 
 2. 52 : Wrong, gives 5 , 1
 3. 99 : Wrong, gives 9 , 8
 4. 26 : Wrong, gives 2 , 5
解决方案1:

int left =int.Parse( n.toString().Substring(0,1)) ;
int right =int.Parse( n.toString().Substring(1,1)) ;
解决方案2:

int left = n / 10 ; 
int right = n % 10 ; 

int right=n%10。您有两种选择:a)将数字视为字符串,一次提取一个字符(我的选择),或b)乘以10/将余数一次提取一个数字(您的选择)。您不应该在浮点空间中进行除法(除非您使用的是二进制数字,或者您非常非常小心)。你应该取余数(“%”模运算符)Hm,如果你总是有2个数字,为什么不使用right=n-10*left
m
代替
f
来得到正确的答案呢。但是@tkausl的解决方案更好。非常感谢!我不想将数字视为字符串(先决条件),我的错误是我在浮点空间中进行除法,模数运算符是实现除法的方法,谢谢大家。
int n = 52 ;
int left =int.Parse( n.toString().Substring(0,1)) ;
int right =int.Parse( n.toString().Substring(1,1)) ;
int left = n / 10 ; 
int right = n % 10 ;