检查整数变量的长度

时间:2012-06-01 07:02:23

标签: c#

有没有办法检查整数变量的长度,如果是长只是修剪它。 我在数据库中有一个接受3个字符的字段,lenth是3。

因此可以像使用字符串变量

那样完成

示例:

cust_ref = cust_ref.Length > 20 ? cust_ref.Substring(0, 19) : cust_ref; 

谢谢!

10 个答案:

答案 0 :(得分:20)

最简单的答案是:

//The length would be 3 chars.    
public int myint = 111;
myint.ToString().Length;

答案 1 :(得分:10)

以下对我有用了!

public static int IntLength(int i)
{
  if (i < 0)
    throw new ArgumentOutOfRangeException();
  if (i == 0)
    return 1;
  return (int)Math.Floor(Math.Log10(i)) + 1;
}

原始来源:http://www.java2s.com/Code/CSharp/Data-Types/Getthedigitlengthofanintvalue.htm

答案 2 :(得分:3)

您不必将其转换为字符串以缩短字符串,这可以通过数字方式完成:

if (num > 999) {
  num %= 1000;
}

如果你想从右边剪掉它们,这将从左边剪下数字:

while (num > 999) {
  num /= 10;
}

如果值为负数,也请检查:

if (num < -99) {
  num = -(-num % 100);
}

或:

while (num < -99) {
  num = -(-num / 10);
}

答案 3 :(得分:1)

cust_ref = cust_ref.ToString().Length > 20 ? Convert.ToInt32(cust_ref.ToString().Substring(0, 19)) : cust_ref; 

或只是使用

cust_ref = Convert.ToInt32(Convert.ToString(cust_ref).Substring(0, 19));

答案 4 :(得分:1)

像这样使用

 cust_ref=   cust_ref.Tostring().Length > 20 ? Convert.ToInt32(cust_ref.ToString().Substring(0, 19)) : cust_ref; 

答案 5 :(得分:1)

不是很清楚你要求的是什么,但尽可能多的我理解你要求:

int a = 1234567890; 

由于某种原因你想缩短它,比如

 int b = MakeShorter(a); 
    //b == 1234 (say)

如果是这样,最简单的解决方案可能是,将其转换为字符串,制作已经实现的内容并将其重新转换回int。

如果这不是您所要求的,请澄清。

答案 6 :(得分:1)

转换为字符串是实现它的难看方式。

这需要一个纯粹的数学解决方案

int CutTheNumber(int number, int maxLen)
{
  var maxSize = (int)Math.Pow(10, maxlen);
  if(maxSize <= Math.Abs(number))
  {
    number %= maxSize;
  }

  return number;
}

答案 7 :(得分:0)

检查长度

     length = cust_ref.ToString().Length;

删除额外位

       if (length > need)
       {
           cust_ref =Convert.ToInt32( cust_ref.ToString().Remove(length -(length- need)));
       }

答案 8 :(得分:0)

为此你必须做一些简单的事情。 像

cust_ref = Convert.ToInt32(Convert.ToString(cust_ref).Substring(0, 19));

或者您可以手动将其存储在任何变量和

答案 9 :(得分:0)

您可以尝试使用此代码。使用if else语句检查验证..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace avaragescore
{
    class Program
    {

        static void Main(string[] args)
        {
            float quiz;
            float midterm;
            float final;
            float avrg=0;
        Start:
            Console.WriteLine("Please enter the Quize Score here");
            quiz = float.Parse(Console.ReadLine());
            if(quiz > 100)
            {
                Console.WriteLine("You have entered wrong score please re-enter");
                goto Start;
            }
            Start1:
            Console.WriteLine("Please enter the Midterm Score here");
            midterm = float.Parse(Console.ReadLine());
            if(midterm > 100)
            {
                Console.WriteLine("You have entered wrong score please re- enter");
                goto Start1;
            }
            Start3:
            Console.WriteLine("Please enter the Final Score here");
            final = float.Parse(Console.ReadLine());
            if(final > 100)
            {
                Console.WriteLine("You have entered wrong Score Please re-enter");
                goto Start3;
            }
            avrg = (quiz + midterm + final) / 3;

            if(avrg >= 90)
            {
                Console.WriteLine("Your Score is {0} , You got A grade",avrg);
            }
            else if (avrg >= 70 && avrg < 90)
            {
                Console.WriteLine("Your Score is {0} , You got B grade", avrg);
            }
            else if (avrg >= 50 && avrg < 70)
            {
                Console.WriteLine("Your Score is {0} , You got C grade", avrg);
            }
            else if (avrg < 50)
            {
                Console.WriteLine("Yor Score is {0} , You are fail", avrg);
            }
            else
            {
                Console.WriteLine("You enter invalid Score");
            }
            Console.ReadLine();
        }
    }
}