このチュートリアルでは、C# の数値型について説明します。 少量のコードを記述した後、そのコードをコンパイルして実行します。 このチュートリアルには、C# の数値と算術演算を調べる一連のレッスンが含まれています。 これらのレッスンでは、C# 言語の基礎について説明します。
ヒント
コード スニペット ブロックに [実行] ボタンが含まれている場合、そのボタンによって対話型ウィンドウが開くか、対話型ウィンドウ内の既存のコードが置き換えられます。 スニペットに [実行] ボタンが含まれていない場合は、コードをコピーして現在の対話型ウィンドウに追加できます。
整数演算を調べる
対話型ウィンドウで次のコードを実行します。
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
上記のコードは、整数を使用した基本的な算術演算を示しています。 int
型は整数、正または負の整数を表します。 追加には +
記号を使用します。 整数に対するその他の一般的な算術演算は次のとおりです。
-
: 減算*
乗算の場合/
: 除算
これらのさまざまな操作を調べてから始めます。 これらの各操作を試すには、3 行目を変更します。 たとえば、減算を試すには、次の行に示すように、 +
を -
に置き換えます。
int c = a - b;
試してみてください。 [実行] ボタンを選択します。 次に、乗算、 *
、除算、 /
を試します。 必要に応じて、同じ行に複数の数学演算を記述して実験することもできます。
ヒント
C# (または任意のプログラミング言語) を調べるときに、コードを記述するときに間違いを犯します。 コンパイラ はこれらのエラーを見つけて報告します。 出力にエラー メッセージが含まれている場合は、コード例と対話型ウィンドウのコードをよく見て、修正する内容を確認します。 この演習は、C# コードの構造を学習するのに役立ちます。
操作の順序を調べる
C# 言語では、数学で学習した規則と一致する規則を使用して、さまざまな数学演算の優先順位を定義します。 乗算と除算は加算と減算よりも優先されます。 これを調べるには、対話型ウィンドウで次のコードを実行します。
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
この出力は、乗算が加算の前に実行されることを示しています。
最初に実行したい演算を囲むように丸かっこを追加することで、演算の順序を変えることができます。 対話型ウィンドウに次の行を追加します。
d = (a + b) * c;
Console.WriteLine(d);
さまざまな操作を組み合わせることで、さらに詳しく調べることができます。 前のコードの 4 行目を次のように置き換えます。
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
整数の興味深い動作に気付く場合があります。 整数除算では、結果に 10 進数または小数部が含まれると予想される場合でも、常に整数の結果が生成されます。
次のコードを試してください。
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
整数の精度と限界を探る
最後のサンプルでは、整数除算によって結果が切り捨てられることが示されています。 剰余演算子、すなわち記号を使うと、剰余を取得できます。
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
C# 整数型は、数学的な整数とは別の方法で異なります。 int
型には最小値と最大値があります。 これらの制限を確認するには、次のコードを試してください。
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
計算によってこれらの制限を超える値が生成される場合は、 アンダーフロー または オーバーフロー 状態になります。 計算の結果が 1 つの制限からもう 1 つの制限に折り返されているように見えます。 例を確認するには、対話型ウィンドウに次の 2 行を追加します。
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
答えは最小 (負の) 整数に非常に近いことがわかります。 min + 2
と同じです。 加算操作により、整数の許容値 がオーバーフローしました 。 整数がオーバーフローして最大値から最小値に ”折り返され” たため、計算結果が大きな負の値になっています。
int
型がニーズを満たしていない場合に使用する、さまざまな制限と精度を持つ他の数値型があります。 次に、これらの種類の数値を調べてみましょう。
double 型の処理
double
数値型は倍精度浮動小数点数を表します。 これらの用語は新しいかもしれません。 浮動小数点数は、大きいか小さい可能性がある非整数を表すために役立ちます。 倍精度 は、値の格納に使用される 2 進数の数を表す相対用語です。 倍精度 数値は、2 進数の 2 倍の 単精度を持ちます。 最新のコンピューターでは、単精度数値よりも倍精度を使用する方が一般的です。 単精度 数値は、 float
キーワードを使用して宣言されます。 探検してみましょう。 次のコードを実行し、結果を確認します。
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
計算結果に商の小数部分が含まれていることに注目してください。 doubles を使用して、もう少し複雑な式を試してみてください。 次の値を使用するか、他の数値に置き換えることができます。
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
double 値の範囲が整数値より大きい。 対話型ウィンドウで次のコードを試してください。
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
これらの値は、科学的表記で出力されます。 E
の前の数値は仮数です。 E
の後の数値は指数であり、10 の累乗です。
数学の 10 進数と同様に、C# の double には丸めエラーが発生する可能性があります。 次のコードを試してください。
double third = 1.0 / 3.0;
Console.WriteLine(third);
あなたは、 0.3
が 3/10
であり、 1/3
とまったく同じではないことを知っている。 同様に、 0.33
は 33/100
。 この値は 1/3
に近いですが、正確ではありません。 小数点以下の桁数を追加しても、丸めエラーは残ります。
挑戦
double
型を使用して、大きな数値、小さい数値、乗算、除算を含む他の計算を試してみてください。 より複雑な計算を試してください。
小数型を扱う
学習する必要がある型は他に 1 つあります。 decimal
型です。 decimal
型の範囲は小さいが、double
よりも精度が高い。 見てみましょう。
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
範囲が double
型よりも小さいことに注意してください。 次のコードを試してみると、10 進型の方が精度が高くなります。
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
10 進数値型を使用する数値には、小数点の右側にさらに多くの数字があることに注意してください。
数値の M
サフィックスは、定数が decimal
型を使用する必要があることを示す方法です。 それ以外の場合、コンパイラは double
型を想定します。
注
M
文字は、double
キーワードとdecimal
キーワードの間で最も視覚的に区別される文字として選択されました。
挑戦
半径が 2.50 センチメートルの円の面積を計算するコードを記述します。 円の面積は、半径の 2 乗に PI を乗算した値です。 1 つのヒント: .NET には PI の定数が含まれています。 Math.PI 、その値に使用できます。 Math.PISystem.Math
名前空間で宣言されているすべての定数と同様に、double
値です。 そのため、このチャレンジでは、double
の値ではなくdecimal
の値を使用する必要があります。
19 から 20 の間で回答を得る必要があります。
試したら、詳細ウィンドウを開いて、その方法を確認します。
必要な場合は、他の数式を試してください。
"C# の数値" 対話型チュートリアルを完了しました。 [タプルと型] リンクを選択して次の対話型チュートリアルを開始するか、.NET サイトにアクセスして .NET SDK をダウンロードし、コンピューターにプロジェクトを作成し、コーディングを続けることができます。 「次のステップ」セクションでは、これらのチュートリアルに戻ります。
C# の数値の詳細については、次の記事を参照してください。
.NET