我有一个正在构建的CLR项目。该程序的操作如下:
第一步:用户输入调查标题,然后点击计算。
第2步:用户输入观察到的标题并将其输入文本字段
第3步:用户单击按钮以计算计算出的标题与观察到的标题之间的差异
Step4:标题中的差异被放置在新的文本字段中
好,所以基本上我们有一个已校准的指南针,并且我们观察到第二个指南针相对于第一个的方向。这两个标题之间的差异是我们的最终输出。
我正在尝试编写一个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是否在.5的公差范围内(正数还是负数)。
我对数学评估的If / Else比较有些不满意。 我曾尝试搜索高级If / Else比较,但是大多数情况下,我遇到了一些示例,解释了如何使用&& vs || vs <=等
答案 0 :(得分:0)
好吧,我只是简化了过程,并使用了Difference的Abs值,所以我只需要一个比较。
if (Math::Abs(varOut1) < .5) {