1

値をインクリメント量だけ上に移動するか、最も近いインクリメントに移動できるコンポーネントを書きたいと思います。

増分が 0.0005 であると仮定すると、Up() メソッドの予想される入力と出力は次のようになります。

  • 1.0005 -> 1.0010 (インクリメント時なのでインクリメントで移動)
  • 1.0006 -> 1.0010 (増分ではないため、増分に移動)
  • 1.0007 -> 1.0010
  • 1.0008 -> 1.0010
  • 1.0009 -> 1.0010
  • 1.0010 -> 1.0015 (インクリメント時なのでインクリメントで移動)
  • 1.0011 -> 1.0015
  • 1.0012 -> 1.0015

そして、Down() メソッドは同じことを逆に行います。

私はこの式を思いついた:

return (value + increment) - (value % increment);

Down() メソッドも似ていると思っていましたが、それが何であるかわかりません。私がそれを機能させることができた唯一の方法は、次のことです。

decimal mod = value % increment;

return mod != 0  ? value - mod : value - increment

確かに逆の操作が同じなら、式も同じはずです。

4

2 に答える 2