みなさんこんばにちは、ユウです。
毎年、この時期にはインフルエンザが流行っていますが、例年よりも症例が少ないという病院がちらほらあると耳にします。
コロナウィルスを恐れてみんなが手洗いうがいをするように心がけた結果だそうです。
いままで、いかに手洗いうがいを怠っていたかが分かりますね(笑)。
前回は、整数型と浮動小数点型について紹介しました。
以前の記事は以下のリンクから足を運んでみてください。
本記事での学習
☑decimal型で小数点数を表現する
☑文字型について理解する
今回はC#で特徴的な型や通常の型、独特の型などを紹介していきます。
今回の内容も情報量が多いかもしれませんが、基本の部分ですのでしっかりと覚えるようにしましょう。
それでは早速始めていきましょう。
今回C#を紹介するにあたって、発行元:SB クリエイティブ株式会社 著者:粂井 康孝(くめい やすたか)さんの「猫でもわかるC#プログラミング」を参考に紹介しています。
decimal型

decimal型は特徴的なC#のデータ型です。
前回の記事でコンピュータは小数の計算が苦手であると説明しました。
しかし、小数が不安定となると金融機関でのお金の換算をするときとても困ってしまいますね。小数が不安定だとかなりのお金が変化してしまいます(笑)
そこでdecimal型では、内部的に10進演算を行い、ビット長は128ビットで小数点以下28桁程度までの正確な演算を行えます。
decimal型の変数に値を代入するとき次のように代入するとエラーになります。
decimal d;
d = 0.99;
このように代入すると、0.25がdouble型と解釈されてしまいdecimal型に代入することができません。
このように代入したいときは、「m」や「M」を数値につける必要があります。
例)
d = 0.99m;
d = 0.99M;
それでは、今まで通りdecimal型の範囲を確認していきましょう。
もし良ければ、ここでは以下のコードを見らずにまずはあなたの考えで書いてみてください。
今までのコードをきちんと復習することができていれば書けるはずです。
それでは練習問題として、先ほど金融関係の話をしたので利息の単利計算と複利計算について考えていきましょう。
まずは、単利計算と複利計算の予備知識をつけましょう。
詳しい内容は以下のリンクを参考にしてください。

単利計算
m円を利率pでn単位期間借りたとする
1単位期間の利息は「m×p」円
n単位期間ではこのn倍
これらから、n単位期間借りたときの元利合計は「m+(m×p)×n」
よってm×(1+n×p)
複利計算
1単位期間後の利息は「m×p」円
これが元金に繰り入れられる。
増えた元金に対し、次の1単位期間で利息が増加
n単位期間での元利合計は次のようになる
m×(1+p)^n
MathクラスのPowメソッドを使用すると引数や戻り値がdouble型になってしまいdecimal型を使う意味がなくなってしまいます。
ここでは1単位期間ごとに元利合計をだすプログラムを作って行きましょう。
今回はコードがかさばるような形になってしまいまいたが、
これを後に学習するforループ文で書いていくとかなり簡素なコードになるので、
forループを習った後はこれを書き直してみてください。
文字型

char型はUnicode文字型です。
Unicodeについては以下のリンクを参考にしてください。
char c;とすると、cには文字1文字の値(Unicode)を代入することができます。
ビット長は16ビットとなり、文字リテラル(文字そのもの)は、シングルクォート(’)で囲みます。
それではサンプルコードを書いてみましょう。
エスケープ文字
文字型にはエスケープ文字(escape sequence)という特別な文字(改行やタブ)があります。
エスケープ文字は以下の表のようなものがあり、以下ように表現します。
エスケープ文字 | 意味 |
\n | 改行 |
\r | キャリッジリターン |
\t | タブ |
\’ | シングルクォート |
\” | ダブルクォート |
\0 | ヌル文字 |
\\ | 円記号 |
\b | バックスペース |
\v | 垂直タブ |
\f | 改ページ |
表示によっては「¥」が半角表示で「\」となっているので、気を付けるようにしてください。
それでは、改行とタブを使ってコードを書いてみましょう。
最後に
今回はdecimal型と文字型について紹介していきました。
特に文字型はかなり使用する機会があるので、きちんと理解できているようにしましょう。
今回はこれで以上となります。
最後まで読んでいただきありがとうございました。