You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询Python支持的最大正浮点数代码出现死循环如何解决

问题定位与修复方案

核心问题点

  • 打印变量名错误:你定义的计数变量为max_precision,但最后打印的是未定义的precision,即便循环正常结束也会抛出NameError。
  • 死循环根因:运行当前代码前你意外覆盖了Python内置的float类或正无穷定义,导致float('inf')返回值不是标准的正无穷大,循环判断条件永远成立。另外你将变量命名为max,覆盖了Python内置的max()最大值函数,属于不规范命名,容易引发其他隐藏问题。

修复后可正常运行的代码

current_val = 1
precision_count = 1
# 提前定义正无穷常量,避免循环中重复调用同时规避内置对象被覆盖的影响
INF = float('inf')

while current_val != INF:
    current_val *= 10
    precision_count += 1
print(precision_count)

运行后即可输出预期结果309。

拓展:更简便的查询方法

Python标准库sys模块已经内置了浮点数相关的参数,可以直接查询无需手动计算:

import sys
# max_10_exp表示最大的整数指数,使得10**exp为有限浮点数,值为308,加1即可得到你要的309结果
print(sys.float_info.max_10_exp + 1)

内容的提问来源于stack exchange,提问作者Bath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:30:04