我有6个double值x,y,z,a,b,c。每次他们改变时我都需要最低限度的。比较不包含零的值吗?
到目前为止,我使用了Math.Min()
,我通过检查是否不等于零并使用List.min()
将它们添加到列表中。但每次值改变时,列表都不会自行更新。
该过程正在检查数千次,我需要一个快速的方法。
- 检查所有变量。
- 如果其中一个或多个为0,则不要进行比较。
- 取其他值的最小值。
- 重复,当按钮按下。
代码:
private void calculateRatio()
{
xRatio = 100 * (xStepCount/xAbsoluteDelta);
yRatio = 100 * (yStepCount/yAbsoluteDelta);
zRatio = 100 * (zStepCount/zAbsoluteDelta);
aRatio = 100 * (aStepCount/aAbsoluteDelta);
bRatio = 100 * (bStepCount/bAbsoluteDelta);
cRatio = 100 * (cStepCount/cAbsoluteDelta);
}
private void selectAxis()
{
minRatio = 100 * (Math.Min((double)xRatio, Math.Min((double)yRatio, Math.Min((double)zRatio, Math.Min((double)aRatio, Math.Min((double)bRatio, (double)cRatio))))));
}
//without including zero, by updating every time step count changed.
什么是导致值改变?什么是监测这种变化?听起来真正的问题是检测到这些变化。有些代码可以帮助这个问题更有意义。 –
另请注意,double值的平等比较可能无法提供期望的结果。 –