我正在编写一个脚本来检查测试程序生成的一些参数数据。我的表格是一些具有单个光谱峰和左侧和/或右侧峰的激光光谱。我想在 JMP 中可视化数据,所以我创建了这个图:

我能够使用一列来突出显示光谱中的峰值,该列使用一个简单的公式来仅在 SpectralPeakPower(红色)处填充行。
如果(:YValues == Col Max(:SpectralPeakPower,:LampWfr,:serial,:"激光电流[mA]"n),:SpectralPeakPower)
但是,当我使用相同的概念来计算左侧峰值的功率时,等效性陈述失败,因此左侧峰值功率不会填充到行中,也不会在图中突出显示。

在调试此问题时,似乎没有逻辑原因导致 == 语句没有变为 1......
(-46.81 == -46.81) = 1 对吧!?!?! 我有点疯狂地调试这个……
== 不为 1 的其他可能原因有哪些?
我的脚本中还有其他存在舍入误差的情况,我想使用 ~== 近似等效函数。这样的函数已经存在了吗?
我可以私下与员工分享 JMP 文件以供审查。
谢谢,
可能是由于浮点数学。
Show(0.1 + 0.2, 0.1 + 0.2 == 0.3);
//0.1 + 0.2 = 0.3;
//0.1 + 0.2 == 0.3 = 0;
您可以使用 Round()、Floor() 或 Ceiling() 来四舍五入您的值。