我正在编写C#应用程序,我有员工薪水。如何获得26500的工资上限和下限整数在20000到30000之间。 我想找到26500这两个值的上限和下限。如果工资值是1200那么它的上限和下限值将是1000和2000。
答案 0 :(得分:2)
您可以使用类似以下代码的内容:
private void button1_Click(object sender, EventArgs e)
{
int a = 26500;
int powerOfTen = (int)Math.Pow(10, NumDigits(a)-1);
int lowerBound = a - a%powerOfTen;
int upperBound = (a/powerOfTen + 1) * powerOfTen;
}
private int NumDigits(int value)
{
int count = 0;
while (value > 0)
{
value /= 10;
count++;
}
return count;
}
NumDigits方法,如名称所示,将计算所需数字的位数。
答案 1 :(得分:0)
int value = 26500; // Initialise this to whatever value you need.
int range = (int)(0.5 + Math.Pow(10, (int)Math.Log10(value)));
int lower = range*(value/range);
int upper = lower + range;
这适用于:
请注意,value
是一个整数至关重要。
答案 2 :(得分:0)
我无法抗拒......一种不同的“基于字符串”的方法,我相信很多人只会讨厌:
int value = 26500;
int lower = Convert.ToInt32(value.ToString().Substring(0, 1) + new String('0', value.ToString().Length - 1));
int upper = lower + Convert.ToInt32("1" + new String('0', value.ToString().Length - 1));
Console.WriteLine(lower.ToString("N0") + " <= " + value.ToString("N0") + " <= " + upper.ToString("N0"));
奖金:它不会在0(零)上呕吐......