【发布时间】: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
【问题讨论】: