if-statement - C++:IF/ELSE 与正值和负值的比较
问题描述
我有一个正在构建的 CLR 项目。该程序运行如下:
Step1:用户输入调查标题,然后点击计算。
Step2:用户输入观察到的标题并将它们输入到文本字段中
Step3:用户点击按钮计算计算出的航向与观察航向的差值
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 是否在 0.5 的容差范围内,无论是正数还是负数。
我对数学评估的 If/Else 比较有点生疏。我尝试搜索高级 If/Else 比较,但大多数情况下我遇到了解释如何使用 && vs || 的示例 vs <= 等
解决方案
好吧,我只是简化了过程并使用了差异的绝对值,因此我只需要一个比较。
if (Math::Abs(varOut1) < .5) {
推荐阅读
- javascript - 如何调整小型设备的引导模式(横向和纵向)
- python - 如果条件为带有数字和字符串的数组
- mininet - 使用 RYU 控制器的 SDN mininet 中的目标主机无法访问
- json - 如何将地图列表从颤振发送到 webapi
- python-3.x - 未定义符号:_ZN10tensorflow8OpKernel11TraceStringEPNS_15OpKernelContextEb
- docker - 读取和编辑 YAML 的最简单和优化的方法
- rust - 如何将生命周期限制在代码区域?
- flutter - 带有 GIF 图像的自定义进度指示器
- php - laravel 访问其他有关系的表的数组数据
- android - View Binding extension function