简体   繁体   中英

Check the length of integer variable

Is there a way to check a lenth of integer variable, and if is to long just trim it. I hava a field in database that accepts 3 character, lenth is 3.

So is it possible to do like it's done with string variable

example:

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

Thanks!

The easiest answer would be:

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

The following worked a treat for me!

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;
}

Original Source: http://www.java2s.com/Code/CSharp/Data-Types/Getthedigitlengthofanintvalue.htm

You don't have to convert it to a string to make it shorter, that can be done numerically:

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

This will cut of digits from the left, if you want to cut them off from the right:

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

If the value can be negative, also check:

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

or:

while (num < -99) {
  num = -(-num / 10);
}
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));

像这样使用

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

Nont very clear what you're asking for, but as much as I unerstood you're asking for:

int a = 1234567890; 

for some reason you want to make it shorter, like

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

If so, the easiest solution may be, convert it to string, made what you already implemented and reconvert it back to int.

If this is not what you're asking for, please clarify.

The conversion to the string is ugly way to implement it.

It's require a pure math solution

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

  return number;
}

Checking length

     length = cust_ref.ToString().Length;

Remove extra bits

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

for this u will have to do some simple stuffs. like

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

or u can manually store it in any variable and the

You can try this code. use if else statement to check the validation ..

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();
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM