diff --git a/TIASshot/Cameras/GainCalc.cs b/TIASshot/Cameras/GainCalc.cs index 9854e5d..cf823f5 100644 --- a/TIASshot/Cameras/GainCalc.cs +++ b/TIASshot/Cameras/GainCalc.cs @@ -34,6 +34,9 @@ // float→int キャストは範囲外・非有限値(Infinity)で未定義値になるため, // キャスト前に double のまま範囲判定する double value = 0.5 + (double)(currentValue * ratio); + // 現在値 0 に比率 Infinity を掛けると NaN になり範囲判定をすり抜けるため, + // 比率 NaN と同様に更新量を決められないものとして現在値を維持する + if (double.IsNaN(value)) return currentValue; if (value < rangeMin) return rangeMin; if (value > rangeMax) return rangeMax; return (int)value;