问题标签 [floating-point-exceptions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
257 浏览

c - 浮点异常和太大的常量警告?

我不愿发布我的代码,因为这是为了学校作业,但基本上我需要遍历一个uint64_t可能非常大的代码。

所以,我的值基本上可能是 10 个字符长。它最初是一个int,并且代码部分有效(但没有完成创建它应该完成的输出),但后来我得到了错误"warning: integer constant is so large that it is unsigned"

然后我将其更改intuint64_t(乘以 10),它会给我一个浮点异常。

没有代码的任何见解?

编辑:添加一点点代码......

^ 这给了我浮点异常。

不确定这是否足以提供帮助。

0 投票
2 回答
271 浏览

c++ - 为什么会出现浮点异常错误?

我是新手程序员,所以请与我打交道。我正在编写一个程序来分析数据。当我执行程序时,我收到一个“浮点异常”,我不知道为什么。这是错误源自的代码部分。据我所知,该if声明似乎是问题所在,但我不明白为什么。非常感谢您提供的任何帮助!

0 投票
1 回答
856 浏览

c - 在嵌入式代码中处理浮点异常的最佳方法是什么?

我正在开发一个安全关键的嵌入式程序(在 C 中),我想在其中使用 IEEE 754 浮点算法(带有 NaN 和 Infs)进行工程计算。在这里,我有两种方法(afaik)来处理浮点异常:

  • 如果发生任何异常,则进入永久故障状态。从错误检测的角度来看,这可能更健壮,但对容错/可用性不利。
  • 忽略异常,并检查最终结果是有限数(成功计算)还是 NaN、inf(计算失败)。此解决方案具有更高的容错性,但风险更大,因为输出可能会意外地从检查中排除。

    1. 在安全关键系统中哪个是更好的解决方案?
    2. 还有其他选择吗?
    3. 如果计算的复杂性不允许第一个解决方案(我无法避免正常使用中的异常),最后的检查是否足够,还是我应该考虑其他方面?
0 投票
1 回答
729 浏览

c - 这其中的哪一部分会导致浮点异常?

如果人们可以查看这段代码并让我知道可能导致浮点异常的原因,我将不胜感激。

信息:

  • 分支是一个大小为 200 的 int 数组
  • line 是一个 char 数组,大小为 20
  • 循环运行良好 6 次,然后发生异常。

我很困惑,因为没有除法、浮点数或整数可能导致这种情况。

0 投票
0 回答
304 浏览

flash - Flash ActiveX 控件在 x64 中引发浮点异常

我有一个使用 Flash 播放器主动 x 控件的 MFC 对话。我在 x86 程序中没有问题,但是当为 x64 构建时,我开始在对话的消息循环中抛出浮点异常。我可以处理其中的第一个,但不是全部。

控件的创建在 OnInitDialog() 中完成

异常在最后一个循环中抛出。

重置异常标志或使用 SEH 处理程序不起作用

cal栈如下

mshtml.dll!CLayout::GetElementLayoutTransform()
mshtml.dll!CLayout::CalcSize()
mshtml.dll!CLayout::CalcTopLayoutSize()
mshtml.dll!CView::EnsureSize()
mshtml.dll!CView::EnsureView()
mshtml.dll!CDoc::RunningToInPlace()
mshtml.dll!CServer::Show()
ieframe.dll!CDocObjectHost::_ShowMsoView()
ieframe.dll!CDocObjectHost::ActivateMe()
mshtml.dll!CServer::ActivateView()
mshtml.dll!CServer::DoUIActivate()
mshtml.dll!CServer::DoVerb()
mshtml.dll!CMarkup::Navigate()
ieframe.dll!CDocObjectHost::_ActivateMsoView()
ieframe.dll!CDocObjectHost::UIActivate()
ieframe.dll!CDocObjectView::UIActivate()
ieframe.dll!CBaseBrowser2::_UIActivateView()
ieframe.dll!CBaseBrowser2::v_ActivatePendingView()
ieframe.dll!CWebBrowserSB::v_ActivatePendingView()
ieframe.dll!CBaseBrowser2::_ExecShellDocView()
ieframe.dll!CBaseBrowser2::Exec()
ieframe.dll!CWebBrowserSB::Exec()
ieframe.dll!CDocObjectHost::_OnReadyState()
ieframe.dll!CDocObjectHost::_OnChangedReadyState()
ieframe.dll!CDocObjectHost::OnChanged()
mshtml.dll!CBase::FirePropertyNotify()
mshtml.dll!CMarkup::SetReadyState()
mshtml.dll!CMarkup::SetInteractiveInternal()
mshtml.dll!CMarkup::RequestReadystateInteractive()
mshtml.dll!CMarkup::BlockScriptExecutionHelper()
mshtml.dll!CHtmPost::Exec()
user32.dll!DefWindowProcWorker()

0 投票
1 回答
445 浏览

c++ - 浮点异常问题

我尝试过调试器和 Catch and throw,尽管我承认我对这两个都不满意。但我无法在我的程序中找到浮点异常的原因。奇怪的是它对于数字 <= 35 运行完美。除此之外,它引发了异常。问题出在哪里?

非常感谢。

0 投票
2 回答
222 浏览

c++ - 神秘的浮点异常

可能重复:
谁能解释这些未定义的行为(i = i++ + ++i,i = i++ 等……)

我和我的朋友正在搞砸,试图想出我们能想到的最糟糕的 for 循环(所以不要告诉我这是糟糕的代码,因为它应该是!)。

我的朋友想出了这个 for 循环:

它看起来不错,但由于浮点异常,即使是第一次也无法进入。所以我的第一个想法是模数除以 0。但它似乎没有,因为如果你这样做,它运行良好:

但这不会:

但它变得陌生。第一种情况运行良好,第二种情况不会:

所以现在我真的对发生的事情感到困惑,但它又变得更奇怪了。如果您将情况与? 0 : 1(运行良好)放入 if 语句中,它会再次引发浮点异常:

我完全迷失了这一点。有人知道这里发生了什么吗?

0 投票
1 回答
870 浏览

vhdl - ghdl 浮点异常 8

我正在尝试编写具有 32 位地址的 SRAM,并启用字节通道写入。但是,当我尝试访问(读取或写入)大于 x1F 的地址时,在使用 GHDL 编译时出现“浮点异常 8”。以下是一些代码片段:

因此,当我在测试台中将地址设置为 x0000_001F 或更低时,它会编译,但当我输入 x0000_0020 或更高时则不会。

0 投票
0 回答
135 浏览

floating-point-exceptions - MCH1206 浮点溢出情况

IBM OS400 C ILE 程序

有谁知道 MCH1206 何时在 C 程序中发布?C 程序没有定义任何错误处理。

在我的环境中,每当发生溢出时, - 例如 result = pow(a,b)

如果发生溢出,则将结果设置为 HUGE_VAL,并继续执行。在作业日志中,我可以看到此消息:
“CEESDXPD 中发生浮点溢出异常。”

但是,在另一个环境中,它会停止执行并发出此消息
“检测到浮点溢出条件。应用程序错误。MCH1206 在语句 00000038 处不受 F07RTB 监控”

是否有全局处理(例如在系统级别定义)?数学库的全局处理?

谢谢

0 投票
2 回答
1380 浏览

c - 如何引发浮点异常

伙计们。我正在围绕浮点运算做一些工作。0.1 不精确地用二进制浮点格式表示。于是我写下了这个

并期望出现不确切的异常。我打开了 -fp-trap-all=all 选项,将 fp-mode 设置为严格并在我的代码中安装了 SIGFPE 信号处理程序。但是什么也没发生。然后我尝试了

仍然无法捕获任何异常!它让我发疯。

很抱歉,我终于在 Linux 上使用了 intel c++ 编译器。