如何在c#中将小数舍入为int

时间:2013-05-08 02:19:52

标签: c#

我正在产生小数,例如:

  1. 0.8235294117647058823529411765

  2. 0.1764705882352941176470588235

  3. 我想将它们乘以10然后围绕它们。如果点后的第二个数字小于5,则将其设为0。否则,请将其设为1。对于上面的例子,那将是:

    1. 8

    2. 2

    3. 结果应放在int

2 个答案:

答案 0 :(得分:5)

我觉得这很简单。

Math.Round(10 * your_decimal);

参考:http://msdn.microsoft.com/en-us/library/3s2d3xkk.aspx

答案 1 :(得分:2)

如果您希望将decimal保持为decimal dec = 0.8235294117647058823529411765m; decimal rounded = Math.Round(dec * 10); // 8m decimal roundedToOne = Math.Round(dec * 10, 1); // 8.2m 或将其保持为一定精度,则可以使用Math.Round()

decimal

仅供参考,int定义为intint a = (int)(dec * 10); // 8 ,因此您可以通过转换为decimal num = dec * 10; int a = (int)num + (num % 0 < .5m ? 0 : 1); // 8

来向下舍入
{{1}}

这可以与条件相结合来上下调整数字

{{1}}