【问题标题】:C++: IF/ELSE comparisons with positive & negative valuesC++:IF/ELSE 与正值和负值的比较
【发布时间】:2019-02-05 23:50:58
【问题描述】:

我正在构建一个 CLR 项目。程序运行如下:

第一步:用户输入调查标题,然后点击计算。

Step2:用户输入观察到的标题并将它们输入到文本字段中

Step3:用户点击按钮计算计算出的标题和观察到的标题之间的差异

第 4 步:将不同的标题放入新的文本字段中

好的,所以基本上我们有一个经过校准的指南针,我们会在第二个指南针上观察相对于第一个指南针的航向。这两个标题之间的区别是我们的最终输出。

我正在尝试编写一个 If/Else 语句,该语句将评估差异并根据它是否通过 0.5 容差的标准以特定颜色写出数字。

目前我正在使用:

varOut1 = (DiffCalc1 - ObsHdgDbl);
        if (varOut1 < .5) {
            this->Diff1->Font = (gcnew System::Drawing::Font(L"Arial", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
                static_cast<System::Byte>(0)));
            this->Diff1->ForeColor = System::Drawing::Color::SpringGreen;
        }
        else {
            this->Diff1->Font = (gcnew System::Drawing::Font(L"Arial", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
                static_cast<System::Byte>(0)));
            this->Diff1->ForeColor = System::Drawing::Color::Red;
        }
        Diff1Final = (varOut1.ToString("n2"));
        Diff1->Text = Diff1Final;

到目前为止,这在一定程度上是可行的……但问题是有时差值是负数。

示例:CalculatedHdg = 40.45,ObservedHdg=40.52,Diff1=.07 在此示例中,代码有效,因为它位于所描述的语句中,因此输出为绿色。

如果您有 ObservedHdg=41.52 则输出以红色打印... 但是,如果您有 ObservedHdg=31.52,那么即使整体差异高于 0.5,输出仍为绿色。根据观察值,差异可以是正数或负数,因此我需要一个语句来评估 Diff1 是否在 0.5 的容差范围内,无论是正数还是负数。

我对数学评估的 If/Else 比较有点生疏。 我尝试搜索高级 If/Else 比较,但大多数情况下我遇到了解释如何使用 && vs || 的示例vs

【问题讨论】:

    标签: if-statement comparison


    【解决方案1】:

    好吧,我只是简化了过程并使用了差异的 Abs 值,因此我只需要一个比较。

    if (Math::Abs(varOut1) < .5) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2015-10-31
      • 2022-08-16
      相关资源
      最近更新 更多