python保留四位小数
时间: 2025-05-31 11:44:15 浏览: 16
在 Python 中保留小数点后四位的方法有多种,以下是几种常见的方式:
### 方法一:使用 `round()` 函数
`round()` 是 Python 的内置函数,可以用来对浮点数进行四舍五入并保留指定的小数位数[^2]。
```python
num = 3.1415926535
rounded_num = round(num, 4)
print(rounded_num) # 输出结果为 3.1416
```
此方法会自动按照四舍五入规则处理数值。
---
### 方法二:使用字符串格式化
通过字符串格式化功能也可以实现保留小数点后四位的效果。支持两种主要形式:`%` 格式化 和 `format()` 方法[^3]。
#### 使用 `%` 格式化
```python
num = 3.1415926535
formatted_num = "%.4f" % num
print(formatted_num) # 输出结果为 '3.1416'
```
#### 使用 `format()` 方法
```python
num = 3.1415926535
formatted_num = "{:.4f}".format(num)
print(formatted_num) # 输出结果为 '3.1416'
```
#### 使用 f-string(适用于 Python 3.6+)
```python
num = 3.1415926535
formatted_num = f"{num:.4f}"
print(formatted_num) # 输出结果为 '3.1416'
```
这些方法均能将浮点数格式化为带有四位小数的字符串。
---
### 方法三:使用 `decimal` 模块
如果需要更高的精度控制,可以选择使用 `decimal` 模块。它允许设置具体的舍入模式和小数位数[^4]。
```python
from decimal import Decimal, getcontext
getcontext().prec = 6 # 设置总的精度为6位(包括整数部分)
num = Decimal('3.1415926535')
rounded_num = +num.quantize(Decimal('0.0001')) # 将数字量化到小数点后四位
print(rounded_num) # 输出结果为 Decimal('3.1416')
```
在此例子中,`quantize()` 方法用于指定要保留的小数位数,而正号操作符 (`+`) 则触发了重新规范化过程以应用当前上下文中的精度设定。
---
### 方法四:仅截断而不四舍五入
有时候可能希望直接截断多余的小数位而不是执行四舍五入,则可采用如下方式。
#### 基于字符串切割
```python
num = 3.1415926535
truncated_str = str(num).split('.')[0] + '.' + str(num).split('.')[1][:4]
print(truncated_str) # 输出结果为 '3.1415'
```
注意这种方式不会考虑任何舍入逻辑,只是简单地移除超出范围的部分。
---
### 总结
每种方法都有其适用场景:
- 对于基本需求,推荐使用 `round()` 或者字符串格式化;
- 需求更高精度时选用 `decimal` 模块;
- 若只需单纯截断则可通过字符串手段达成目的。
阅读全文
相关推荐


















