MST

星途 面试题库

面试题:Python浮点数科学计算中如何避免精度损失

在Python的浮点数科学计算中,经常会遇到精度损失问题,例如0.1 + 0.2 != 0.3。请阐述一种避免这类精度损失的常用方法,并给出简单示例代码。
12.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

在Python中处理浮点数精度问题,常用decimal模块。decimal模块提供了十进制浮点运算支持,能够更精确地表示和运算小数。

示例代码如下:

from decimal import Decimal

# 创建Decimal对象进行运算
result = Decimal('0.1') + Decimal('0.2')
print(result == Decimal('0.3'))  # 输出: True

解释:

  1. 首先导入decimal模块中的Decimal类。
  2. 使用字符串形式初始化Decimal对象,这是因为直接使用浮点数初始化可能仍会存在精度问题。
  3. 进行加法运算后,比较结果与Decimal('0.3'),可以得到预期的结果。