int型的参数相加或相减不会产生错误,但是在相乘或者相除的条件下,会产生取整。
C#中的Math.Round()并不是使用的"四舍五入"法。其实在VB、VBScript、C#、J#、T-SQL中Round函数都是采用Banker’s rounding(银行家算法),即:四舍六入五取偶。事实上这也是IEEE的规范,因此所有符合IEEE标准的语言都应该采用这样的算法。
static void Main(string[] args)
{
int a = 7;
int b = 2;
var res = a / b;
Console.WriteLine("Hello World!"+res);
res = Convert.ToInt32(Math.Round((double)a / (double)b, 0));
Console.WriteLine("Hello World!" + res);
double res1 =Math.Round((double)a / (double)b, 1);
Console.WriteLine("7/2,取一位小数:" + res1);
double res2 =Math.Round((double)a / (double)b, 2);
Console.WriteLine("7/2,取两位小数:" + res2);
res = Convert.ToInt32(Math.Round(20.5));
Console.WriteLine("20.5取整" + res);