round()函数在C++与python中的区别及对齐方法

本文比较了Python和C++中round()函数的行为,指出Python采用银行家舍入策略,而C++使用四舍五入。还介绍了intmy_round函数示例,展示了在处理浮点数时的对齐方法和可能的精度问题。
摘要由CSDN通过智能技术生成

区别

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会出现位数问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值