c#取整数的最后一位的函数是神马

shan7719515 2011-10-19 09:12:01
整数的位置不固定要求取到整数的最后一位
如果最后一位大于1则取5,如果大于5则末位进一变0

在线等
...全文
857 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2011-10-19
  • 打赏
  • 举报
回复
看了楼上各种方法有种大炮打苍蝇的感觉
636f6c696e 2011-10-19
  • 打赏
  • 举报
回复
还是不知道楼主的意思
整数的末位最简单最直接了当的方法难道不是%10么
shan7719515 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sdl2005lyx 的回复:]

简单解决:

C# code

int a = 126;

int b=10;
int c;

int d = Math.DivRem(a, b, out c);

if (c <= 5)
c = 5;
else
……
[/Quote]
这方法好,只是结贴了。。。无分了
hudenq 2011-10-19
  • 打赏
  • 举报
回复
这么简单的东西要写一大串,现在的人呀
x = Math.Abs(x);//取绝对值,x为任意整数
int k = x % 10; //取个位
if (k > 5) k += 10 - k;
else if (k > 1) k += 5 - k;
sdl2005lyx 2011-10-19
  • 打赏
  • 举报
回复
简单解决:


int a = 126;

int b=10;
int c;

int d = Math.DivRem(a, b, out c);

if (c <= 5)
c = 5;
else
{
d = d + 1;
c = 0;
}

int newVal = d * 10 + c; //newVal就是你要获取的结果
欢乐的小猪 2011-10-19
  • 打赏
  • 举报
回复
string tmpstr = "dsls1235690230sdef";
if (new Regex(@"[\d]+[\D]*", RegexOptions.None).IsMatch(tmpstr))
{
int number = int.Parse ( new Regex(@"([\d]+)[\D]*").Match(tmpstr).Groups[1].Value );
int last = number % 10;
//后续处理
}
Console.ReadKey();
shan7719515 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 q107770540 的回复:]

C# code

void Main()
{
Random rd=new Random();
int i=20;
while(i>0)
{
int m=rd.Next(1,10000);
Console.WriteLine("{0}===>{1}",m,Check(m));
i--;
}

/*……
[/Quote]
大神威武
xuelang1225 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zyloveyrf 的回复:]
其实很简单
假如你的整数是123456
string num="123456";//相当于 123456.Tostring();

int lastNum=int.parse(num.Remove(num.length-1,num.length));
[/Quote]
+1
萧炎 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zyloveyrf 的回复:]
其实很简单
假如你的整数是123456
string num="123456";//相当于 123456.Tostring();

int lastNum=int.parse(num.Remove(num.length-1,num.length));
[/Quote]
修改下
int lastNum=int.parse(num.SubString(num.length-1,num.length));
或者
int lastNum=int.parse(num.Remove(0,num.length-1));
萧炎 2011-10-19
  • 打赏
  • 举报
回复
其实很简单
假如你的整数是123456
string num="123456";//相当于 123456.Tostring();

int lastNum=int.parse(num.Remove(num.length-1,num.length));
qq9361235 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 danjiewu 的回复:]
引用 5 楼 shan7719515 的回复:

引用 3 楼 pmars 的回复:

C# code
void change(ref int x)
{
int k = x%10;
if ( k > 5) x -= k;
else if ( k > 1) x = x-k+5;
}

我是只取末位,位数不固定,x%10这个不太行


整数的末位难道不是个位吗?理解不能
[/Quote]
这个是正解
danjiewu 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shan7719515 的回复:]

引用 3 楼 pmars 的回复:

C# code
void change(ref int x)
{
int k = x%10;
if ( k > 5) x -= k;
else if ( k > 1) x = x-k+5;
}

我是只取末位,位数不固定,x%10这个不太行
[/Quote]

整数的末位难道不是个位吗?理解不能
q107770540 2011-10-19
  • 打赏
  • 举报
回复

void Main()
{
Random rd=new Random();
int i=20;
while(i>0)
{
int m=rd.Next(1,10000);
Console.WriteLine("{0}===>{1}",m,Check(m));
i--;
}

/*
7926===>7930
7336===>7340
1516===>1520
2978===>2980
7799===>7800
2651===>2655
9624===>9625
7829===>7830
1107===>1110
7365===>7370
8029===>8030
3030===>3035
807===>810
2990===>2995
430===>435
9510===>9515
3885===>3890
3519===>3520
7083===>7085
5664===>5665
*/
}
string Check(int m)
{

string last= m.ToString().Substring(m.ToString().Length-1);
string exceptLast=m.ToString().Substring(0,m.ToString().Length-1);
int n= int.Parse(last);
if(n>=5) return string.Concat(int.Parse(exceptLast)+1,0);
else return string.Concat(exceptLast,5);

}
zhenhunfan3 2011-10-19
  • 打赏
  • 举报
回复
什么意思,是取模操作吗?
rinall 2011-10-19
  • 打赏
  • 举报
回复
不知道,拼字符串吧
shan7719515 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pmars 的回复:]

C# code
void change(ref int x)
{
int k = x%10;
if ( k > 5) x -= k;
else if ( k > 1) x = x-k+5;
}
[/Quote]
我是只取末位,位数不固定,x%10这个不太行
pmars 2011-10-19
  • 打赏
  • 举报
回复

static void change(ref int x)
{
int k = x % 10;
if (k > 5) x += 10-k;
else if (k > 1) x += 5 - k;
}

有点看错了,呵呵!
pmars 2011-10-19
  • 打赏
  • 举报
回复
void change(ref int x)
{
int k = x%10;
if ( k > 5) x -= k;
else if ( k > 1) x = x-k+5;
}

shan7719515 2011-10-19
  • 打赏
  • 举报
回复
高手速来哇
shan7719515 2011-10-19
  • 打赏
  • 举报
回复
高手速来哇

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧