たなしょのメモ

日々勉強していることをつらつらと

迷子、C#を学ぶ

最近は現場も忙しくなってきました。 責任ある仕事をさせて頂いているので旬日している半面、技術的に尖ったことはできていないのでちょっと悶々しています。9月か10月までは仕事をやり抜こうかと思っているのでそこまでは全力で頑張ります。

decimal型

金融系ではよく見る型です。浮動小数点の桁数を保証してくれます。お金を数えていて 265.34円が正確な値なのに 265.3円と桁を丸めれてしまったら大変です。それを未然に防ぐために使われます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace List3
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 0.1234567890123456789012345689;
            Console.WriteLine(d);

            decimal m = 0.12345678901234567890123456789m;
            Console.WriteLine(m);
        }
    }
}

結果は

0.123456789012346
0.1234567890123456789012345679

下記のように double型で宣言した変数は 桁丸めが起こっています。正しい値が表示されません。

double d = 0.12345678901234567890123456890;

decimal型で宣言した変数は正しく表示されています。

decimal m = 0.123456789012345678901234567890m;

このように28桁まで桁を丸めずに保有できる型です。

String型

String型には連結置換検索等の機能があるようです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace List4
{
    class Program
    {
        static void Main(string[] args)
        {
            String s = "test";
            Console.WriteLine(s + "test2");
            Console.WriteLine(s.Contains("test"));
            Console.WriteLine(s.Replace("es", "**"));
        }
    }
}

結果は

testtest2
True
t**t

testという文字列に対して test2という文字列を追加しています。結果は「testtest2」になります。

Console.WriteLine(s + "test2");

test文字列の中からtest文字列を探しています。結果はboolean型が返ってきます。

Console.WriteLine(s.Contains("test"));

これはtest文字列の中からabcを検索しています。 もちろんそのような文字列は存在しないのでFalseが返ってきます。

String t = "test";
Console.WriteLine(t.Contains("abc"));

最後に置換です。test文字列のesを**に置き換えています。

Console.WriteLine(s.Replace("es", "**"));

文字列挿入

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace List5
{
    class Program
    {
        static void Main(string[] args)
        {
            var x = 1;
            var y = x;
            string s = $"{x} + {y} = {x + y}";
            Console.WriteLine(s);
        }
    }
}

結果は

1 + 1 = 2

$"{A}"と表記することで変数Aの値を取得します。 $"{A + B}"で式の評価もしてくれます。

ここではx = 1y = 1なので1 + 1 = 2を表示させています。

文字の入力

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace List6
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = int.Parse(Console.ReadLine());
            int y = (x > 5) ? 10 : 0;
            Console.WriteLine(y);
        }
    }
}

まず入力を受け付けます。Console.ReadLine() 関数でString型文字列を受け取ります。 その後int.Parse() 関数でString型→int型への変換を行いint型のx に代入しています。

int x = int.Parse(Console.ReadLine());

xの値が5より大きければ10をyに代入、5より小さければ0をyに代入します。

int y = (x > 5) ? 10 : 0;

x=6の場合、

6
10

x=3の場合

3
0

今日はこれぐらいで終わりにしたいと思います。 最後まで読んでいただいてありがとうございました。

もしよろしければtwitterアカウント(@piklus100yen)もフォローしていただけると幸いです!