C# 计算器-允许在计算中使用负数
对于实践作业,我需要创建一个计算器,它可以:C# 计算器-允许在计算中使用负数,c#,calculator,C#,Calculator,对于实践作业,我需要创建一个计算器,它可以: 倍增 分开 加 减去 句柄小数 处理负数,例如(2--3=5) 除了处理负数,我已经做了所有的工作,我真的不知道怎么做这样的事情,我想你也许能帮上忙。以下是我当前的解决代码: public decimal getResult(string equation) { //parse a equation as a string and solve it List<string> numbers = input.Split(op
- 倍增
- 分开
- 加
- 减去
- 句柄小数
- 处理负数,例如(2--3=5)
public decimal getResult(string equation)
{
//parse a equation as a string and solve it
List<string> numbers = input.Split(opSplit, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
List<string> operators = input.Split(numSplit, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
//remove any decimals from operators list
for (int i = 0; i < operators.Count; i++)
{
if (operators[i] == ".")
{
operators.RemoveAt(i);
}
}
//set total to first values in numbers then remove in from list
decimal total = decimal.Parse(numbers[0]);
numbers.Remove(total.ToString());
int count = 0;
foreach(string s in numbers) {
decimal val = decimal.Parse(s);
string current_operator = operators[count];
MessageBox.Show(current_operator);
switch (current_operator)
{
case "+":
total += val;
break;
case "-":
total -= val;
break;
case "x":
total *= val;
break;
case "/":
total /= val;
break;
}
if (count != operators.Count-1)
{
count++;
}
}
return total;
}
public decimal getResult(字符串表达式)
{
//将方程解析为字符串并求解它
List number=input.Split(opSplit,StringSplitOptions.removeMptyEntries.ToList();
List operators=input.Split(numSplit,StringSplitOptions.removeMptyEntries.ToList();
//从运算符列表中删除任何小数
for(int i=0;i
我的方程式是用这种格式输入的
- 1+2-3*4/5
- 首先:现在你没有考虑操作顺序,这是一个非常糟糕的想法
我假设你想这样做:
-3+-5
,对吗
以下是您可以做出的一些假设:
- 不要将初始值设置为第一个值
total=0
。这样,如果你从-5
开始,你就得到了方程0-5
,它已经是正确的,初始值也没有问题
- 简化数学运算
-3+-5
与0-3-5
相同。利用这一点:解析运算符并检查是否有两个运算符相互跟随。如果你有这样的想法:简化操作,你就可以开始了
好的措施是:
+-------------+
| op | op | = |
+-------------+
| + | + | + |
| + | - | - |
| - | + | - |
| - | - | + |
+-------------+
首先:现在你没有考虑操作顺序,这是一个非常糟糕的想法 我假设你想这样做:
-3+-5
,对吗
以下是您可以做出的一些假设:
- 不要将初始值设置为第一个值
total=0
。这样,如果你从-5
开始,你就得到了方程0-5
,它已经是正确的,初始值也没有问题
- 简化数学运算
-3+-5
与0-3-5
相同。利用这一点:解析运算符并检查是否有两个运算符相互跟随。如果你有这样的想法:简化操作,你就可以开始了
好的措施是:
+-------------+
| op | op | = |
+-------------+
| + | + | + |
| + | - | - |
| - | + | - |
| - | - | + |
+-------------+
首先:现在你没有考虑操作顺序,这是一个非常糟糕的想法 我假设你想这样做:
-3+-5
,对吗
以下是您可以做出的一些假设:
- 不要将初始值设置为第一个值
total=0
。这样,如果你从-5
开始,你就得到了方程0-5
,它已经是正确的,初始值也没有问题
- 简化数学运算
-3+-5
与0-3-5
相同。利用这一点:解析运算符并检查是否有两个运算符相互跟随。如果你有这样的想法:简化操作,你就可以开始了
好的措施是:
+-------------+
| op | op | = |
+-------------+
| + | + | + |
| + | - | - |
| - | + | - |
| - | - | + |
+-------------+
首先:现在你没有考虑操作顺序,这是一个非常糟糕的想法 我假设你想这样做:
-3+-5
,对吗
以下是您可以做出的一些假设:
- 不要将初始值设置为第一个值
total=0
。这样,如果你从-5
开始,你就得到了方程0-5
,它已经是正确的,初始值也没有问题
- 简化数学运算
-3+-5
与0-3-5
相同。利用这一点:解析运算符并检查是否有两个运算符相互跟随。如果你有这样的想法:简化操作,你就可以开始了
好的措施是:
+-------------+
| op | op | = |
+-------------+
| + | + | + |
| + | - | - |
| - | + | - |
| - | - | + |
+-------------+
你能澄清这个问题吗?你需要遵循操作顺序吗?(1+2*3=7或1+2*3=9?)您是否在谈论需要输入负数并将其添加到另一个负数的场景?1+2+-3*4/5?我是否理解您的代码是正确的,因为您不允许使用带小数点的数字?@Duncan,如果您的公式是•1+2-3*4/5的形式,那么为什么要启用“x”?您能否澄清这个问题?您需要遵循操作顺序吗?(1+2*3=7或1+2*3=9?)您是否在谈论需要输入负数并将其添加到另一个负数的场景?1+2+-3*4/5?我是否理解您的代码是正确的,因为您不允许使用带小数点的数字?@Duncan,如果您的公式是•1+2-3*4/5的形式,那么为什么要启用“x”?您能否澄清这个问题?您需要遵循操作顺序吗?(1+2*3=7或1+2*3=9?)