问题标签 [divide-by-zero]

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 投票
1 回答
2535 浏览

error-handling - 如何处理 ML 中除以零的错误

我是 ML 新手。

我需要定义一个以条件表达式作为参数的函数,问题是表达式是否像"10 div 0 = 0". 我该如何处理?

例如,函数定义如下:foo exp1 = if (exp1) then ... else...exp1is "10 div 0 = 0",如何处理这个除法错误。

0 投票
0 回答
1607 浏览

android - 处理 glsl 中的未定义、NaN 或 Inf 值。思考数学错误

我仍然没有摆脱我的 glsl 着色器(GL 2.0)中的一些烦人的错误......我已经搜索了超过 3 周的这个问题的解决方案,但我没有得到任何解决方案。谷歌上有很多例子和解释,但没有一个真正有效。

首先,这是我的片段着色器代码。之后,我将解释究竟是什么问题:

有给出以下变量值,其中:

  • pl_ 是点光值,
  • dl_ 是方向光值,
  • mat_diff 是材质的漫反射值,
  • 还有 mat_spec、mat_elum、mat_shine 用于材质镜面反射、发光和光泽度,
  • N = 正常,
  • V = 视图向量到顶点,
  • L = 光向量到顶点,
  • R = 反射向量,
  • D = 光距,
  • DF = 混合光的距离因子,
  • S = 计算的镜面反射系数,
  • F = L,N 的点积
  • 和 diff,计算出的漫反射/规格矢量的规格矢量和。

现在出现以下问题: Pointlights 本身运行完美。定向灯本身也运行完美。但是它们在一起不会很好地工作。我将解决这个问题:我最多有 4 个点光源和 4 个定向光源。为了测试,我使用了 4 个点光源和 1 个定向光源。

  • 如果我注释掉定向灯的for循环计算,我得到以下结果: 禁用定向灯,启用点灯
  • 如果我注释掉点光源的 for 循环,我会得到以下结果: 点光源被禁用,方向灯被启用
  • 如果我启用了两个 for 循环,则会发生以下情况: 两种光源类型均已启用

定向光似乎完全被忽略了。汽车仅由点灯照明。

所以,我发现:如果我改变 for 循环的顺序,点灯 -> 定向灯,而不是 dirlights -> 点灯,效果会交换:点灯被忽略,定向灯被计算。

我也发现,这个问题一定是:pow() 函数或除以零,但是:如果我注释掉以下代码行:

我可以得到以下结果:

spec += 注释掉的行

-> 漫反射颜色通常为点光源和定向光源计算!

所以我想到了如何消除这个问题,因为我认为 0 power by 0 会导致数学错误。也除以零....如何避免未定义的值?

isnan() 或 isinf() 函数似乎在 android-glsl 中不存在。

安迪解决方案或提示我可以做得更好,这会奏效吗?如果它可以帮助一点点,我会很高兴任何答案。这让我很生气,因为 3 周。非常感谢帮手!:)

有关代码的更多信息: https ://github.com/Chrise55/Llama3D

克里斯

0 投票
1 回答
1082 浏览

c++ - 如何使用 Boost.Test 库处理整数除零异常?

我正在使用 Boost.Test 针对一些旧的 C 数学库编写单元测试。已知为某些指定输入引发整数除零系统异常的测试函数之一。假设这是期望的行为,我想为这种情况编写否定测试。

BOOST_REQUIRE_THROW(statement, exception);对我不起作用,因为它不是 C++ 样式异常(此宏在try {} catch {}内部使用)。

当我预计系统级别出现故障时,处理案例的正确方法是什么?

0 投票
2 回答
460 浏览

haskell - 为什么此代码除以零?

我有一个小型 Haskell 程序,我很好奇为什么在运行它时会抛出除以零异常(GHC 7.0.3)

谁能帮我理解这里发生了什么?

0 投票
1 回答
7148 浏览

sql - NullIf() 防止被零除

在我的查询中,在计算平均值时,我遇到了除以零的错误。我试图通过使用 Nullif 来解决这个问题,但我认为我的语法不正确,因为 Coldfusion 会抛出一个错误,指出')' 附近的语法不正确。

我的查询是:

任何人都可以为我澄清语法吗?

0 投票
2 回答
190 浏览

ruby - 这是如何除以零的?

Ruby 中非常非常基本的块:

给我:

然而,“puts x”块返回 1 到 125,就像它应该的那样。

到底是怎么回事?

0 投票
1 回答
3588 浏览

computer-science - 除下溢

为什么除数下溢仅在除数远小于被除数时引起,无论除数大小如何,分母都足够接近零时不应该发生?

0 投票
5 回答
8624 浏览

php - 计算百分比变化而不除以零

我有以下用于计算百分比减少或增加的 PHP:

我想知道的问题是如果$nLastMonthPeriod是 0 并且$nCurrentPeriod是 10 那么它应该返回 100 而不是 0 吗?

0 投票
2 回答
861 浏览

math - 整数除以零和浮点数(实数)除以零

如果我运行以下代码行,我会收到DIVIDE BY ZERO错误

这是预期的行为。

现在我运行下面的代码行

这里没有DIVIDE BY ZERO错误,而是显示INFINITY

在第一行中,我将两个整数相除,在第二行中,我将两个实数相除。

为什么整数除以零会产生DIVIDE BY ZERO错误,而实数会产生错误INFINITY

我确信它不是特定于任何编程语言的。

0 投票
2 回答
205 浏览

c# - x != 0.0 是针对 DivideByZeroException 的安全检查吗?

为了防止 C# 中的 DivideByZeroException,人们经常编写类似的东西

考虑到浮点运算总是不精确的事实,我想知道是否可以保证这个函数永远不会抛出 DivideByZeroException。