区别
round()函数对浮点数进行取整,在两种语言中有些不同。
取整规则
- Python:Python的
round
函数使用"银行家舍入"(Banker's Rounding)策略,即在.5的情况下向最接近的偶数舍入。这意味着如果要舍入的数字是0.5,那么它将被舍入到最接近的偶数,这样可以减少舍入误差。 - C++:C++中的
std::round
函数使用"四舍五入"策略,即在.5的情况下总是向上舍入到最接近的整数。
对齐方法
int my_round(double f) {
int i = (int)f;
//cout << i << endl;
if (i % 2 == 0 && ((f - i) * 10) == 5.0) {
return i;
}
else {
return round(f);
}
}
注意需要双精度浮点型double,float会出现位数问题