gpt4 book ai didi

python - NaN 根据 Python 启动给出错误?

转载 作者:太空狗 更新时间:2023-10-30 02:35:13 33 4
gpt4 key购买 nike

我正在使用 Python4Delphi将 Python 嵌入到 Delphi 程序中。版本:Python 2.6.4、Delphi 2009、Windows XP。

Delphi 程序在导入 json 时因 EInvalidOp 而崩溃。我追踪到了这条线

NaN, PosInf, NegInf = float('nan'), float('inf'), float('-inf')

json.decoder 中。

果然,命令 float('nan') 在 Delphi 程序中嵌入的 Python 中运行时会引发一个 EInvalidOp。当在命令行 Python 中执行时(相同的安装),它只返回 nan

知道 Python 标准启动和嵌入式启动之间可能导致此类错误的区别是什么吗?

最佳答案

这很可能是 Python 使用不同的 8087 control word (CW) 设置比 Delphi 好。

尝试这种代码:

var
OldControlWord: Word;
begin
OldControlWord := Get8087CW();
Set8087CW($133F);
try
// perform your Python code here
finally
Set8087CW(OldControlWord);
end;
end;

查看我的 blog article on the 8087 CW in Delphi有关 $133F 值(value)的更详细解释。
它需要 JCL对于 T8087Precision 类型(在 Jcl8087 单元中)。

--杰伦

关于python - NaN 根据 Python 启动给出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933851/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com