-2 mod 12 の結果を確認します。計算結果の期待値は10です。
% による計算-2 % 12 = -2
残念ながら期待通りの結果は得られませんでした。
-2 - function(-2 / 12) * 12 function:実数を整数に変換する関数実数を整数に変換する関数が2種類あるので、それぞれに計算結果を確認します。
-2 - intval(-2 / 12) * 12 = -2
-2 - floor(-2 / 12) * 12 = 10
-2 % 12 = 10
剰余演算子 % の結果は次の通り。
-2 % 12 =
期待の結果が得られないので、次により計算します。整数化には Math.floor を使用します。
-2 - Math.floor(-2 / 12) * 12 = 10
Mod(-2 , 12) = 10
何と、期待する値が算出されました。
Mod 関数がない。ワークシート関数も使用できない。Excelの全関数がVBAから使える訳ではないんですね。初めて気付きました。
仕方がないので、自力計算します。
-2 - int(-2 / 12) * 12 = 10
結局は、分子がマイナスの場合の剰余の算出をどうするかに帰する問題です。