我试图了解如何使用C#舍入到最接近的十分位置。例如,我有一个double类型的值。这个双倍目前设定为10.75。但是,我需要进行舍入然后截断超过十分位置的所有内容。在这种情况下,我正在寻求10.8的值。如何在C#中转到十分位置?
谢谢!
答案 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
枚举的重载:
答案 3 :(得分:4)
你真的需要对它进行舍入,还是只能将其格式化以进行打印,但允许变量本身保持其精度?类似的东西:
decimal value = 10.75;
value.ToString ("#.#");
答案 4 :(得分:2)
如果您只是想在第一个小数后“切割”所有内容,这应该可行:
return Math.Round(value * 10)/10