気になった事を自由に書いてます。
      
あれ?decimal d=0.0100MをToStringすると"0.0100"になる
decimal d=0.0100MをToString()すると"0.0100"になります。
"0.01"としたい場合はどうすれば、よいのでしょうか。。。
ということで考えてみました。
テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

private void button1_Click(object sender, EventArgs e)
{
    decimal d = 0.0100M;
    Console.WriteLine(d);       // 0.0100
    d = DecimalZeroCut(d);
    Console.WriteLine(d);       // 0.01
}

private decimal DecimalZeroCut(decimal d)
{
    string s = d.ToString();
    if (s.IndexOf(".") < 0)
    {
        // 小数点なし
        return d;
    }
    return decimal.Parse(s.TrimEnd('0'));
}
これで後ろの0をカットしてくれます。

うーん、そもそもdecimal型の変数で小数桁に無駄な0が付いてることなどあるのか?

      






Copyright (C) 2011 - 2017 猫の気ままなC#日記