繁体   English   中英

检查整数变量的长度

[英]Check the length of integer variable

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

所以它可以像使用字符串变量一样完成

例:

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

谢谢!

最简单的答案是:

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

以下对我来说是一种享受!

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

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

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

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

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

如果值可以是负数,也请检查:

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

要么:

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; 

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

int a = 1234567890; 

出于某种原因,你想让它更短,比如

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

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

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

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

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

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

  return number;
}

检查长度

     length = cust_ref.ToString().Length;

删除额外的位

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

为此,你将不得不做一些简单的事情。 喜欢

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

或者你可以手动将它存储在任何变量和

您可以尝试此代码。 使用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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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