-3

我正在生成小数,例如:

  1. 0.8235294117647058823529411765

  2. 0.1764705882352941176470588235

我想将它们相乘,10然后将它们四舍五入。如果点之后的第二个数字小于5然后做它0。否则,做它1。对于上述示例,这将是:

  1. 8

  2. 2

结果应该放在一个int.

4

2 回答 2

5

我以为这很简单。

Math.Round(10 * your_decimal);

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

于 2013-05-08T02:21:14.433 回答
2

Math.Round()如果您想将其保持为 adecimal或 round 到一定的精度,您可以使用它。

decimal dec = 0.8235294117647058823529411765m;

decimal rounded = Math.Round(dec * 10); // 8m

decimal roundedToOne = Math.Round(dec * 10, 1); // 8.2m

仅供参考,为to定义了显式转换,因此您可以通过强制转换为decimalintint

int a = (int)(dec * 10); // 8

这可以与向上和向下舍入数字的条件结合使用

decimal num = dec * 10;
int a = (int)num + (num % 0 < .5m ? 0 : 1); // 8
于 2013-05-08T02:23:49.787 回答