C# 四舍五入中一处易错点
2021-06-30 10:06
标签:重载方法 情况 rom 参数 转换 问题 实现 源码 常用方法 ,你没看错,四舍五入的结果 和我们期待的不太一样 Why?? 进入源码看下,注释中解释的很清楚。。 默认情况下,Math.Round()方法返回的是最接近的整数,这个没问题,问题是当要转换的数据在 两个整数之间时即 0.5时,这个方法默认会返回两个整数中的偶数,并不是我们认为的0.5就进位 如果我们需要实现四舍五入 我们看它的几个重载方法 其中 这个方法的参数MidpointRounding枚举 参数给出了当数据是两个整数之间的数值时,如果取整数 其中第二个,会舍入较小的那个整数,也就是取较大的值,这个正是我们所希望的,所以我们四舍五入时候 需要将这个参数加上,并且参数值设为 AwayFromZero 之前正没有仔细注意过,以后要多注意一些常用方法的重载,以防止出现类似的问题 例如 如下一段代码: 执行完转换后 id 的值是多少? 如果稍微不注意很容易认为是100,其实是0.out 是只传出 不管入的 C# 四舍五入中一处易错点 标签:重载方法 情况 rom 参数 转换 问题 实现 源码 常用方法 原文地址:https://www.cnblogs.com/yaoweijun/p/9982277.html