如何限制十进制数?

aha*_*ron 18 .net c# floating-point rounding

可能重复:
如何格式化小数

我怎样才能限制我的十进制数,所以我只得到点数后的3位数?

e.g  2.774
Run Code Online (Sandbox Code Playgroud)

Pra*_*ana 46

Math.Round方法(十进制,Int32)

例:

Math.Round(3.44, 1); //Returns 3.4.
Run Code Online (Sandbox Code Playgroud)

  • 请注意,默认情况下,C#使用"Banker's Rounding",这可能不是您想要的,因此有一个方法重载Math.Round(decimal,int,MidpointRounding),以便您准确指定要使用的舍入方法.例如,TSQL使用"远离零"舍入,因此可能给出与默认C#舍入不同的值. (9认同)

Mat*_*hen 12

我假设你真的是要为输出格式化它:

Console.WriteLine("{0:0.###}", value);
Run Code Online (Sandbox Code Playgroud)


hea*_*150 5

要获得 Decimal,请Math.Round与指定小数点数的 Second 参数一起使用。

decimal d = 54.9700M;    
decimal f = (Math.Round(d, 2)); // 54.97
Run Code Online (Sandbox Code Playgroud)

要获取数字的字符串表示,请使用.ToString()将小数点指定为 N3。其中3是小数点

decimal d = 54.9700M;    
string s = number.ToString("N3"); // "54.97"
Run Code Online (Sandbox Code Playgroud)