Decimal ToString 輸出
越簡單的東西越需要小心
decimal a = 0m;
decimal b = 0.0m;
Console.WriteLine(a == b);
Console.WriteLine(a.ToString() == b.ToString());
a = 1.56m;
Console.WriteLine(a.ToString("0.0"));
a = 123456.789m;
Console.WriteLine(a.ToString("0.0"));
Console.WriteLine(a.ToString("0,0.00"));
請問輸出結果是什麼
True
False
1.6
123456.8
123,456.79
原先我預期它只輸出到小數點第 N 位,但卻忽略掉四捨五入 N+1 位行為
在此筆記一下
另外,如果讓整數(例如 8m) ToString 時輸出至小數點一位
也可用以下寫法
decimal c = 8m;
Console.WriteLine(c.ToString()); // output: "8"
c += 0.0m;
Console.WriteLine(c.ToString()); // output: "8.0"