我有 6 个双精度值 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.