在Python中读取带有1.#QNAN值的浮点数

2 投票
1 回答
1572 浏览
提问于 2025-04-15 23:33

有没有人知道一个可以处理MSVC的nan数字(1.#QNAN)的Python字符串转浮点数的解析器?目前我只是用float(str),它至少能处理"nan"。

我正在用一个Python脚本来读取一个C++程序的输出(这个程序可以在linux、mac和win平台上运行),但是当读取这些值时,脚本就出错了。(我已经找到一个C++库,可以在不同平台上输出一致的值,但有时候我需要比较以前的结果,所以这些问题偶尔还是会出现。)

1 个回答

2

因为你需要处理旧的输出文件,我觉得唯一的办法就是写一个 robust_float 函数:

def robust_float(s):
    try:
        return float(s)
    except ValueError:
        if 'nan' in s.lower():
            return float('nan')
        else:
            raise

撰写回答