//请大家帮忙写一个函数或者一个公式
//例如我传一个101-200之间的数返回的结果是200;
//例如我传一个201-300之间的数返回的结果是300;//传一个1-10之间的数返回的结果是10;
//传一个10-20之间的数返回的结果是20;//传一个1001-2000之间的数返回的结果是2000;
//传一个2001-3000之间的数返回的结果是3000;

解决方案 »

  1.   

    private int GetNum(int val)
    {
    string strVal = val.ToString();
    int len = strVal.Length;
    if(len == 1) return 10; string firstNum = strVal.Substring(0, 1);
    string needAdd = "1";
    needAdd = needAdd.PadRight(len, '0');
    strVal = firstNum.PadRight(len ,'0'); return int.Parse(strVal) + int.Parse(needAdd);
    }
      

  2.   

    private double GetValue(double num)
            {
                double length = num.ToString().Length;
                if (num > Double.Parse(num.ToString()[0].ToString()) * Math.Pow(10, length - 1))
                {
                    return (Double.Parse(num.ToString()[0].ToString()) + 1) * Math.Pow(10, length - 1);
                }
                else
                    return num;
            }
      

  3.   


    private static int F(int x)
    {
        if (x <= 10)
            return 10;    int n = 0;
        int y = x;
        while (y >= 10)
        {
            n++;
            y /= 10;
        }
        int z = Convert.ToInt32(Math.Pow(10, n)) * y;
        if (z == x)
            return z;
        else
            return z + Convert.ToInt32(Math.Pow(10, n));
    }
      

  4.   

    private double GetValue(double num) 
            { 
                double length = num.ToString().Length; 
                if(length == 1)
                    return 10;
                if (num > Double.Parse(num.ToString()[0].ToString()) * Math.Pow(10, length - 1))
                    return (Double.Parse(num.ToString()[0].ToString()) + 1) * Math.Pow(10, length - 1);             
                else 
                    return num; 
            }
      

  5.   

      private int GetNum(decimal val)
        {
            int num = Convert.ToInt32(val);
            int length = num.ToString().Length - 1;
            int result = Convert.ToInt32(num / (length * 10));
            return result * 10;
        }