C#计算器,如何将输入指向答案?
我正在用C#做一个计算器。 我必须使用float,因为当我除数时,我得到的答案小于0。 但是,我想让计算器用我已经得到的答案开始新的计算,所以我写道:C#计算器,如何将输入指向答案?,c#,.net,calculator,C#,.net,Calculator,我正在用C#做一个计算器。 我必须使用float,因为当我除数时,我得到的答案小于0。 但是,我想让计算器用我已经得到的答案开始新的计算,所以我写道: a = Convert.ToInt64(answer); 但是,它没有帮助,它也将答案转换为int64。 我想,我可以用指针,但我不知道怎么做 那么,我如何将答案的值复制到“a”(输入),而不转换答案 Int64 a; //1st Input Int64 b; //2nd Input float answer;
a = Convert.ToInt64(answer);
但是,它没有帮助,它也将答案转换为int64。
我想,我可以用指针,但我不知道怎么做
那么,我如何将答案的值复制到“a”(输入),而不转换答案
Int64 a; //1st Input
Int64 b; //2nd Input
float answer;
char d;
bool pressed;
private void button11_Click(object sender, EventArgs e)
{
if (d == '+') answer = a + b;
if (d == '-') answer = a - b;
if (d == '*') answer = a * b;
if (d == '/') answer = a / b;
textBox1.Text = a.ToString() + d + b.ToString() + '=' +answer.ToString();
a = Convert.ToInt64(answer);
b = 0;
}
抱歉,由于缺少完整的源代码,如果有人想让我也添加它们,请告诉我:)要考虑两个选项:
- 只做整数除法
- 输入和输出都使用浮点变量类型
首先,伙计们,他不是在问如何制作计算器,他只是在一个特定的问题上寻求帮助,我认为这就是所谓的计算机 你在正确的轨道上,只是需要一些调整 操作 您很可能不需要
Int64
,您可能正在寻找float
或double
。下面是一个简单的例子:
float a = 1.0f;
float b = 2.0f;
float answer = a / b;
这里的答案是0.5
,如果a
和b
是整数,那么答案是0。如果其中一个(或两个)是浮点
或双精度
,则答案将是十进制数
If语句
在我们进行这项工作时,您的if语句可以通过将其设置为if else来进行改进:
if (d == '+') answer = a + b;
else if (d == '-') answer = a - b;
else if (d == '*') answer = a * b;
else if (d == '/') answer = a / b;
为什么??因为
d
只会是这些字符串中的一个(+
,-
,*
,/
)。对于if-else,一旦一个案例为真,则跳过其余的if。在你的代码中,即使d是+,其他三个if语句仍会被检查。Hmm,我在你发布的代码中没有看到任何指针,因此我将删除标记。你不能通过提问和阅读答案来学习C。去给自己找本书,学C。然后,当您遇到实际问题时,请回到这里寻求帮助。Int64(也称为long)可以保存小于零的值。只有在需要保留分数值时才使用浮点。要么将a和b转换为更精确的数据类型,要么必须通过强制转换将答案四舍五入。我建议使用a和b十进制类型。@C#当然可以使用指针。并不是说真的有这样做的理由。如果你想学习c#,请忘记你所知道的关于指针的一切。你不需要它们。我想让计算器给出不完整的答案,十进制如何帮助我呢?所有大小的整数只适用于整数(整数)。Decimal是一种允许非整数的精确类型。如果将所有内容都移动到十进制,也可以删除Convert.ToInt64()调用。谢谢。但是,有没有可能将a和b保留为int64,以浮点形式获取答案,最后使“a”等于答案,以继续计算?因为,我想让用户输入超过10位数字。在这种情况下,可以使用double而不是float。Double是64位数字,而float是32位数字。