如何使用特定参数计算零

时间:2015-07-01 16:35:01

标签: c# visual-studio-2012 parameters

我需要计算一定数量的零。到目前为止,这段代码有效:

 private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (uFCheckBox.Checked == true)
            {
                nFCheckBox.Checked = false;
                pFCheckBox.Checked = false;
                decimal x = 0;
                if (Decimal.TryParse(textBox1.Text, out x))
                {
                    var y = 1000000;
                    var answer = x * y;

                    displayLabel2.Text = (x.ToString().Replace(".", "").TrimStart(new Char[] { '0' }) + "00").Substring(0, 2);

                    string myString = answer.ToString();
                     // displayLabel5.Text = myString.Split('.')[0].Where(d => d == '0').Count().ToString();
                    displayLabel5.Text = myString.Split('.')[0].Where(d => d == '0').Count().ToString();

                }

当我输入72,47,83等数字时,它完全计为零。但是一旦我输入以零结尾的数字,它就会计为零。我需要在前2位后计算全零的东西。所以50 x 1,000,000将是50,000,000。但我不需要计算前两位数,所以我需要它在这种情况下输出6。 更多例子:

1.0 x 1,000,000 = 1,000,000 - I only need to output 5 zeroes
0.10 x 1,000,000 = 100,000 - I only need to output 4 zeroes.

但是我还要保持这一点,如果我输入其他不以“结束”为零的数字,它仍然是正常的。 例子:

72 x 1,000,000 = 72,000,000 - Needs to output 6
7.2 x 1,000,000 = 7,200,000 - Needs to output 5
.72 x 1,000,000 = 720,000 - Needs to output 4

更新: 我在使用

时正在获得正确的输出
decimal n = str.Split('.')[0].Substring(2, str.Length - 2).Count( s => s == '0');

但现在我收到一个错误:“索引和长度必须引用字符串中的位置。 参数名称:长度“

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你只想输出零的数量。为此,您将执行以下操作:

var y = 1000000;
var answer = x * y;

string numString = answer.ToString();
char[] charArray = numString.ToCharArray();
int count = 0;
for(int i = 2; i < charArray.Length; i++)
{
     if(charArray[i] == '0')
     {
          count++;
     }
}
string output = count.ToString();

使用此选项,输出将是前2位数字后的零字符串数。

答案 1 :(得分:1)

var y = 1000000;
var answer = x * y;
var str= answer.ToString();
var n = str.Substring(2, str.Length - 2).Count(s => s == '0');