加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 计算公式

发布时间:2020-12-15 23:25:15 所属栏目:百科 来源:网络整理
导读:我正在尝试实现一个程序,该程序从用户接收一个等式(在1行中)并输出结果.到目前为止,我已经使用indexof找到符号,然后我试图在符号的左侧和右侧找到数字的值 – string input = "5+4+6"; while (input.Contains('+')) { Console.WriteLine(input.IndexOf("+"))
我正在尝试实现一个程序,该程序从用户接收一个等式(在1行中)并输出结果.到目前为止,我已经使用indexof找到符号,然后我试图在符号的左侧和右侧找到数字的值 –

string input = "5+4+6";
            while (input.Contains('+'))
            {
                Console.WriteLine(input.IndexOf("+"));

                string position1 = input.Substring(0,input.IndexOf("+"));
                int number1 = Convert.ToInt32(position1);

                String position2 = input.Substring(2,input.IndexOf("+"));
                int number2 = Convert.ToInt32(position2);

                int sum = (number1 + number2);

我的代码的问题是我在左边说明数字并将其转换为int而在现实生活中,等式中的数字将是未知的,可以是2 4或3 5 6 4,为了简单起见,现在我试图和 –,然后/和*.

任何人都可以建议改进代码或任何帮助吗?
我知道有其他方法来计算公式,如ncalc,但我想坚持这种方法.

谢谢

解决方法

根据你给出的,如果这是预期的字符串输入,你可以这样做:

string input = "5+4+6";
int result = 0;
while (input.Contains('+'))
{
    var numbers = input.Split('+');

    foreach(var num in numbers)
    {
        result += Convert.ToInt32(num);
    }
}

类似于此的东西应该有效,你可以替换任何运算符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读