【问题标题】:C#: How to detect which textbox value is equal to, or the closest to zero of a group of textboxes/values?C#:如何检测一组文本框/值中哪个文本框值等于或最接近零?
【发布时间】:2010-09-02 00:34:58
【问题描述】:

我有一个很棒的 Excel 公式,我一直在使用,但我想向我的工作中的设计师团队分发一些更实用、更耐用且用户友好的东西。不幸的是,我也在处理负数,所以按最小值是行不通的。

因此,如果 textbox1 表示 13,textbox2 表示 4,textbox3 表示 -1,则文本框 3 将亮起或执行我选择的任何操作,因为 -1 最接近于零。

并不是说它真的有帮助,但是 excel 公式是这样的: =INDEX(A61:A78,MATCH(MIN(INDEX(ABS(A61:A78),0,1)),INDEX(ABS(A61:A78 ),0,1),0))

感谢您的帮助!

【问题讨论】:

    标签: c# numbers zero closest


    【解决方案1】:

    这是一个“有趣的 LINQ”方法

    Func<string, bool> isDecimal = s => { decimal temp; return decimal.TryParse(s, out temp);};
    TextBox closestToZero =
        (from tb in this.Controls.OfType<TextBox>()
            where isDecimal(tb.Text)
            orderby Math.Abs(decimal.Parse(tb.Text))
            select tb)
            .FirstOrDefault();
    
    if (closestToZero != null)
        MessageBox.Show(closestToZero.Text);
    

    【讨论】:

      【解决方案2】:

      遍历文本框,计算每个框中每个数字的绝对值,并跟踪看到的最小数字以及看到它的文本框的索引。尝试查看 Math.Abs() 的绝对值价值。

      【讨论】:

        【解决方案3】:

        您可以简单地遍历文本框,存储到目前为止找到的最小值及其关联的文本框。

        【讨论】:

        • 谢谢你提醒我,我刚刚添加了这个编辑:不幸的是,我也在处理负数,所以按最小值是行不通的。
        • 所以,请使用最小 absolute 值。基本技术仍然有效。
        猜你喜欢
        • 1970-01-01
        • 2021-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多