private int fun(int a, int len) { double b = a / (Math.Pow(10,len-1)); int n = (int)(Math.Ceiling(b) * (Math.Pow(10, len-1))); return n; }//测试 Console.WriteLine(fun(66,2)); Console.WriteLine(func(1250,3)); 输出结果: 70 1300
修改一下代码//len参数表示a从右往左数开始进1的长度,如(67,1)表示个位7进1等于70,(1250,2)表示十位5进1等于1300) private int fun(int a, int len) { double b = a / (Math.Pow(10,len)); int n = (int)(Math.Ceiling(b) * (Math.Pow(10, len))); return n; }//测试 Console.WriteLine(fun(66,1)); Console.WriteLine(func(1250,2));输出结果: 70 1300
随便一个例子说
double a= double.parse(1);
然后进位,再* 10^N10 ^ N表示 10的N次幂。
int a=66;
int b=函数(a,函数的长度);
结果 b 就等于70 了
可我想要大于我原来的那个数字,64 我要70 或者 65
if(i==1250)
{
i=1300;
}
我估计LZ想要的是 :当前给定的数值A,然后从自己想要的集合{b1,b2,b3,b4,b5....}中,选个与A最接近的数?
这样的话 很简单的。。
{
double b = a / (Math.Pow(10,len-1));
int n = (int)(Math.Ceiling(b) * (Math.Pow(10, len-1)));
return n;
}//测试
Console.WriteLine(fun(66,2));
Console.WriteLine(func(1250,3));
输出结果:
70
1300
private int fun(int a, int len)
{
double b = a / (Math.Pow(10,len));
int n = (int)(Math.Ceiling(b) * (Math.Pow(10, len)));
return n;
}//测试
Console.WriteLine(fun(66,1));
Console.WriteLine(func(1250,2));输出结果:
70
1300
至于你说的哪个神奇的520 =600 =550 的问题,估计你想要用Random()来处理逻辑吧.(每次可以具体控制范围)
其他的就是写下,就完了.