Dot-Net

調整小數精度,.net

  • July 15, 2009

C# 中的這些行

decimal a = 2m;
decimal b = 2.0m;
decimal c = 2.00000000m;
decimal d = 2.000000000000000000000000000m;

Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);

生成此輸出:

2
2.0
2.00000000
2.000000000000000000000000000

所以我可以看到從文字創建一個十進制變數可以讓我控制精度。

  • 我可以在不使用文字的情況下調整十進制變數的精度嗎?
  • 如何從 a 創建 b?如何從 c 創建 b?

像這樣保留尾隨零是在 .NET 1.1 中引入的,以更嚴格地符合 ECMA CLI 規範。

MSDN 上有一些關於此的資訊,例如這裡

您可以按如下方式調整精度:

  • Math.Round(或天花板、地板等)以降低精度(b 從 c)
  • 乘以 1.000…(使用您想要的小數位數)以提高精度 - 例如乘以 1.0M 以從 a 中獲得 b。

引用自:https://stackoverflow.com/questions/1132765