用python中的1.#QNAN值读取浮点数

用python中的1.#QNAN值读取浮点数,python,cross-platform,visual-c++,nan,Python,Cross Platform,Visual C++,Nan,有人知道python字符串到浮点解析器可以处理MSVC nan数(1.#QNAN)吗?目前我只使用float(str),它至少可以处理“nan” 我使用Python脚本读取C++程序的输出(运行在Linux /Mac/Win平台下),脚本在读取这些值时会被放大。(我已经找到了一个C++库来跨平台一致地输出值,但有时必须比较过去的结果,所以这仍然是Occsiion弹出。)< /P> < P>因为您必须处理遗留输出文件,我看不出写代码< > BROSTORPOLUT/函数:< /P> def rob

有人知道python字符串到浮点解析器可以处理MSVC nan数(1.#QNAN)吗?目前我只使用
float(str)
,它至少可以处理“nan”


我使用Python脚本读取C++程序的输出(运行在Linux /Mac/Win平台下),脚本在读取这些值时会被放大。(我已经找到了一个C++库来跨平台一致地输出值,但有时必须比较过去的结果,所以这仍然是Occsiion弹出。)< /P> < P>因为您必须处理遗留输出文件,我看不出写代码< > BROSTORPOLUT/<代码>函数:< /P>

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

这里有一个有趣的部分,我的python(win上的2.5)不支持float('nan'),但当我在linux(2.4)上尝试它时,它成功了。这似乎取决于帮助中提到的C库:
注意:传入字符串时,可能会返回NaN和Infinity的值,具体取决于底层C库。返回这些值所接受的特定字符串集完全取决于C库,并且已知会有所不同。
谢谢,这是可行的。关于Enter的评论,我想让它可移植的最简单的方法是用
1e1000-1e1000
之类的东西替换
float('nan')
。float('nan')可以从2.6开始跨平台移植。看见