【问题标题】:Calculator positive and negative sign计算器正负号
【发布时间】:2013-12-31 18:09:20
【问题描述】:

我正在学习创建一个计算器程序。但是我对如何使数字为正数或负数感到有点沮丧。就像我们在普通计算器中看到的一样。 我不确定如何通过使用文本框的按钮将正数变为负数或再次使负号变为正数。

如果我按下按钮,数字会直接进入文本框。

private void No1_Click(object sender, EventArgs e)

    {
        NumBox1.Text = NumBox1.Text + "1";
    }

如何将 NumBox1.text 中的数字设为负号或正号? 请帮忙!!!!

我正在使用 c# 语言

【问题讨论】:

    标签: c# .net calculator


    【解决方案1】:

    假设您使用类似 C 的编程语言,试试这个:

    int x = 10;  // positive
    x = -1 * x   // negative
    
    int y = -10; // negative
    y = -1 * y   // positive
    

    所以你看,你只需要乘以-1 来翻转符号。或者,您可以使用 - 运算符获得相同的效果:

    int x = 10;  // positive
    x = -x       // negative
    
    int y = -10; // negative
    y = -y       // positive
    

    【讨论】:

    • 哈哈哈。我没有想到。 xD所以if语句会这样吗? if (num >1) // 正数 { num = -1 * num; // 负数 } if (num
    • @MAG 甚至不需要if 声明。只需这样做:num = -num; 或这样:num = -1 * num;,都是一样的
    • 我使用的是 c# 语言和一个按钮。哦,是的,我忘了我没有数字按钮的变量,因为它直接进入文本框。我该怎么做?
    【解决方案2】:

    首先,包含有关您尝试执行的操作的更多信息可能会有所帮助,例如您使用的语言、问题是创建按钮还是进行数学运算等。

    但是,如果您只是尝试反转数字的符号,请尝试将数字乘以 -1。这将翻转标志。

    例子:

    3.5521 * -1 = -3.5521
    -104.2 * -1 = +104.2
    0.0000 * -1 = 0
    

    【讨论】:

    • 我使用的是 c# 语言和一个按钮。哦,是的,我忘了我没有数字按钮的变量,因为它直接进入文本框。我该怎么做?
    【解决方案3】:

    如果我了解您对两个已发布答案的跟进 cmets,您不确定当时输入框中的数值,并且需要知道如何在不解析的情况下否定该值,乘以负数, ToStringing 值并将其放回盒子中。

    如果是这种情况,(并且您不想遵循上述过程,因为您可能会丢失尾随或前导零,或者只是不想更改用户的输入)

    private void NegateButton_Click(object sender, EventArgs e)
    {
        if(NumBox1.Text.StartsWith("-"))
        {
            //It's negative now, so strip the `-` sign to make it positive
            NumBox1.Text = NumBox1.Text.Substring(1);
        }
        else if(!string.IsNullOrEmpty(NumBox1.Text) && decimal.Parse(NumBox1.Text) != 0)
        {
            //It's positive now, so prefix the value with the `-` sign to make it negative
            NumBox1.Text = "-" + NumBox1.Text;
        }
    }
    

    【讨论】:

    • 什么是子串?我知道 c# 但还不是很好。 =) 我复制了代码并得到了正确的结果。
    • @MAG 子字符串是字符串的一部分,例如,如果我有字符串 ABCD,那么 AB 是它的子字符串,因为它可以在原始字符串中找到。 substring 方法从给定偏移量开始的字符串中获取字符(上面代码中的一个字符),并从该位置返回一定数量的字符。上面代码中使用的方法的特定重载返回提供的索引处和之后的所有字符。 msdn.microsoft.com/en-us/library/…
    • 所以这里的第一条语句指出,“如果 numbox1.text 以 (-) 开头,那么结果将类似于从字符串的第一个字符开始,对吗?”然后这里的第二条语句指出,“如果 numbox1.text 中的字符串不是 null 或为空并且(我不确定如何解释下一部分,尤其是解析标识符)不等于零,那么 numbox1.text 将全部(-) 加上 numbox1.text 中的当前值”对吗? :)
    • 在 C# 中,索引从 0 开始,因此 Substring(1) 是第二个字符处或之后的所有内容(在索引 1 - 从第一个字符偏移一个字符)。除此之外,对。
    【解决方案4】:

    您可以使用此代码插入到您的按钮中:

    TextBox2.Text = "-" & TextBox2.Text
        Button2.Enabled = False
    
    //or even as simply as this: 
    display.Text = "-" + display.Text;
    

    【讨论】:

      猜你喜欢
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 2013-12-08
      • 2014-08-15
      • 1970-01-01
      • 2017-03-28
      相关资源
      最近更新 更多