この質問は、モジュラス演算子が混乱しているように聞こえます。モジュラス ( %
) 演算子は、除算の剰余を計算します。割り算(分子・分母)と同じ構造です。i % 13
として表示されremainder of 13/i
ます。それは間違いです。ですremainder of i/13
。したがって、i
がゼロの場合、モジュラス演算子は 0 を返します。そのアプリケーションで私のゼロを除算することは決してありません。
例は3/2
です。3/2
1年半です。しかし、その結果を整数 (10 進数なし) に保存すると、 のみ1
が保存されます。その半分はどこに行ったのですか?捨てられました。必要に応じて、またはとして保存するfloat
かdouble
、モジュラス演算子を使用できます。、残り3%2
を差し上げます。1
以下にプログラム例を示します。
struct ModulusHelper
{
public int Quotient;
public int Remainder;
public ModulusHelper(int numerator, int denominator)
{
Quotient = numerator / denominator;
Remainder = numerator % denominator;
}
}
次のように使用できます。
class Program
{
static void Main(string[] args)
{
ModulusHelper mod = new ModulusHelper(args[0], args[1]);
Console.WriteLine("Quotient: {0}", mod.Quotient);
Console.WriteLine("Remainder: {0}", mod.Remainder);
Console.ReadKey(); // BATCH `pause`
}
}