Math.Round 函数解决整型数乘除带来的错误

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);
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值