C# - Math.Round

时间:2009-10-05 16:13:34

标签: c# rounding

我试图了解如何使用C#舍入到最接近的十分位置。例如,我有一个double类型的值。这个双倍目前设定为10.75。但是,我需要进行舍入然后截断超过十分位置的所有内容。在这种情况下,我正在寻求10.8的值。如何在C#中转到十分位置?

谢谢!

5 个答案:

答案 0 :(得分:30)

Math.Round(yourNumber, 1)

第二个参数是要舍入的小数位数。在您的情况下,您需要1个小数位作为最终结果。

答案 1 :(得分:13)

您只需使用带有decimals参数的overload of Math.Round

Math.Round(10.75, 1) // returns 10.8

仅供比较:

Math.Round(10.75)    // returns 11
Math.Round(10.75, 0) // returns 11
Math.Round(10.75, 2) // returns 10.75

答案 2 :(得分:7)

由于您在标题中使用了Math.Round(),我将假设您已经尝试过基本的Math.Round(10.75,1)方法并返回您不期望的内容。考虑到这一点,我建议查看函数的一些不同重载,特别是接受MidPointRounding枚举的重载:

http://msdn.microsoft.com/en-us/library/f5898377.aspx

答案 3 :(得分:4)

你真的需要对它进行舍入,还是只能将其格式化以进行打印,但允许变量本身保持其精度?类似的东西:

decimal value = 10.75;
value.ToString ("#.#");

答案 4 :(得分:2)

如果您只是想在第一个小数后“切割”所有内容,这应该可行:

   return Math.Round(value * 10)/10