首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果找到运算符,我如何轻松地解析文本框来执行计算?

如果找到运算符,我如何轻松地解析文本框来执行计算?
EN

Stack Overflow用户
提问于 2013-04-10 22:27:35
回答 2查看 835关注 0票数 0

作为一名会计助理,我的部分工作要求我将费用组分配到发票上的各种项目。例如,如果一家办公用品公司给我们寄来一些商品,我可能必须将复印纸和笔分开,并将它们编码到单独的费用组中。

将like费用组中的金额划分为总运费和税额是一项繁琐的操作,但我决定通过编写一个程序来更智能地工作,该程序将根据以下输入为我调整金额: items[]、运费和税收。这就像一个护身符,真的减少了我做这些工作所需的时间。

但是,我想实现一个Excel风格的功能,这样我就可以在文本框中使用+和-运算符,这样我就可以轻松地在一行中添加类似的项。(例如,钢笔、锐器、记事本,它们都在发票上的单独行上,都需要计算并作为一笔金额返回。)

我目前正在使用txtValue.Text并将其转换为双精度,以执行计算。我希望能够解析该文本值并计算输入的语句。例如,如果我可以看一眼发票并输入16.49+22.38+47.06,并且知道当我点击calculate按钮时一切都会好起来,那么这将节省我在计算器上将它们相加的时间。

我用VBA for Excel写过一次这篇文章,它本身就允许这样做,但感觉就是不像我自己定制的东西那么好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-10 22:52:19

代码语言:javascript
复制
        string value = "1.2+5.3-1";
        char[] delimiters = new char[] { '+', '-' };
        string[] parts = value.Split(delimiters);
        string[] signs =  Regex.Split(value, "[0-9]|\\.");

这将给你一个数字数组(你需要将它们转换成双精度)和一个符号数组(也会有一些空元素,你应该忽略它们。

只需迭代它们,并使用开关进行实际的数学运算。

票数 2
EN

Stack Overflow用户

发布于 2013-04-10 22:45:05

有几种方法可以解决这个问题。这是我想出来的一个粗略的解决方案。可能有十几种更优雅的方法来实现它。

代码语言:javascript
复制
public double Parse(string input)
{
    char lastoperator = '0';
    double result = 0;
    for (int i = 0; i < input.Length; i++)
    {
        string temp = "";
        if (char.IsDigit(input[i]) || input[i] == '.')
            temp += input[i];
        else if(input[i] == '+' || input[i] == '-')
        {
            double val;
            if(double.TryParse(temp, out val))
            {
                if(lastoperator == '+')
                    result += val;
                else if(lastoperator == '-')
                    result -= val;
                else
                    result = val;

                lastoperator = input[i];
                temp = "";
            }
            //else error
        }
        else
            continue;
    }
    return result;
}

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15928666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档