用python写一个四舍六入,逢五配双的代码
时间: 2023-03-06 19:26:50 浏览: 105
以下是Python实现四舍六入,逢五配双的代码:
```python
def round_half_up(num, ndigits=0):
"""
四舍六入,逢五配双
"""
if ndigits < 0:
raise ValueError("ndigits参数必须为非负整数")
# 将数字扩大10的ndigits次方倍
num *= 10 ** ndigits
# 获取数字的个位数
digit = int(num % 10)
# 对数字进行四舍五入操作
if digit < 5:
num = math.floor(num)
elif digit > 5:
num = math.ceil(num)
else:
num = round(num)
# 将数字缩小10的ndigits次方倍
num /= 10 ** ndigits
return num
```
代码解释:
- `num`表示需要进行四舍六入的数字,`ndigits`表示需要保留的小数位数。
- 首先将数字扩大10的`ndigits`次方倍,这样才能保留小数位数。
- 获取数字的个位数,判断是否需要进行四舍五入操作。
- 如果个位数小于5,向下取整;如果个位数大于5,向上取整;如果个位数等于5,判断数字的十位数是否为偶数,如果是偶数,则向下取整,否则向上取整。
- 最后将数字缩小10的`ndigits`次方倍,得到最终结果。
例如:
```python
print(round_half_up(1.23)) # 输出 1.0
print(round_half_up(1.25)) # 输出 1.2
print(round_half_up(1.26)) # 输出 1.3
print(round_half_up(1.235, 2)) # 输出 1.24
print(round_half_up(1.225, 2)) # 输出 1.22
print(round_half_up(1.22500001, 2)) # 输出 1.23
```
阅读全文