标签: divide-by-zero

不同的编程语言如何处理被 0 除的情况?

也许在这里问这个问题是错误的,但我很好奇。我知道许多语言在被要求除以 0 时会简单地爆炸并失败,但是有没有任何编程语言可以智能地处理这个不可能的总和 - 如果是这样,它们会做什么?他们是继续处理,将 350/0 视为 350,还是停止执行,或者什么?

division divide-by-zero

5
推荐指数
1
解决办法
8058
查看次数

如果没有结果,则将Solr StatsComponent的零错误除以日期字段

我有许多由Solr 3.5索引的文档,其中包含日期字段(solr.DateField)等.现在我请求Solr组件,它应该返回没有结果:

http://example.com/solr/select?fq=sis_field_int:1000&
stats=true&stats.field=ds_field_date
Run Code Online (Sandbox Code Playgroud)

并得到错误

HTTP Status 500 - / by zero java.lang.ArithmeticException: / by zero at
org.apache.solr.handler.component.DateStatsValues.addTypeSpecificStats
(StatsValuesFactory.java:384) at ...
Run Code Online (Sandbox Code Playgroud)

如果我发送没有统计信息的请求,或者指定任何非日期统计字段,我得到预期的响应而没有结果.它看起来像Solr的一个错误,它试图在这种情况下计算平均值.不幸的是我没有找到关于这个问题的参考资料.有没有办法绕过或解决问题?

statistics solr divide-by-zero datefield

5
推荐指数
1
解决办法
476
查看次数

强制除以零默认为NaN而不是Inf

我想知道是否可能有一个设置我忽略强制R返回NaN而不是± Inf除以零.

我经常发现自己在做类似的事情

 results[is.infinite(results)] <- NaN
Run Code Online (Sandbox Code Playgroud)

我希望完全跳过过滤/搜索过程.


例:

### Example:

num <- c(1:5, NA)
denom <- -2:3

quotient <- num / denom
[1] -0.5 -2.0  Inf  4.0  2.5   NA

# desired results
[1] -0.5 -2.0  NaN  4.0  2.5   NA
Run Code Online (Sandbox Code Playgroud)

实现预期结果的简单方法是:

quotient[is.infinite(quotient)] <- NaN
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果最后一步可以避免,同时仍然得到相同的预期结果.

r division divide-by-zero

5
推荐指数
2
解决办法
2052
查看次数

斯卡拉:除以零

我的应用程序中有这样的东西:

def something(x: Int, y: Int) Z {

    (x / y)
}
Run Code Online (Sandbox Code Playgroud)

现在,如果someval不是数字(意味着x或y等于0),那么我希望Z变为0而不是显示错误([ArithmeticException: Division by zero])

我知道我能做到:

Try(someVale) orElse Try(0)
Run Code Online (Sandbox Code Playgroud)

但是,这会给我,Success(0)而我只是想0在这种情况下给我一个.

也许if ArithmeticException then 0在Scala中有类似的东西可以删除"成功"和括号.有人可以解决一些问题吗?

scala divide-by-zero

5
推荐指数
2
解决办法
5030
查看次数

除以0后,在numpy数组中将NaN替换为0

我正在划分两个numpy数组:

>>> import numpy as np
>>> a1 = np.array([[ 0,  3],
                   [ 0,  2]])
>>> a2 = np.array([[ 0,  3],
                   [ 0,  1]])
>>> d = a1/a2
>>> d
array([[ nan,   1.],
       [ nan,   2.]])
>>> where_are_NaNs = np.isnan(d)
>>> d[where_are_NaNs] = 0
>>> d
>>> array([[ 0.,  1.],
           [ 0.,  2.]])
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来获得0而不是使用for循环的Nan?

numpy fillna()和pandas 有类似的功能吗?

python arrays numpy divide-by-zero

5
推荐指数
2
解决办法
6697
查看次数

用循环优化VC ++ 2015除以零

史前史:

我们刚刚将开发环境从VC ++ 2008切换到了VC ++2015。此后,我们发现了一个问题:尽管在C ++代码中测试了除法器,程序仍将除以0。

测试代码:

#include <cstdlib>

int test(int n, int test_for_zero)
{
    int result = 0;
    for (int i = 0; i < n; ++i) {

        if (test_for_zero)
            result += rand() >> ((8 % test_for_zero) * test_for_zero);
    }

    return result;
}

int main()
{
    return test(rand(), rand() & 0x80000000);
}
Run Code Online (Sandbox Code Playgroud)

由具有默认发布选项的VC ++ 2015 Update 3或VC ++ 2017编译,运行时它将除以零。VC 2008编译运行良好。

分析:

; 6    :    for (int i = 0; i < n; ++i) {

    test    edi, edi
    jle SHORT …
Run Code Online (Sandbox Code Playgroud)

divide-by-zero compiler-optimization visual-c++ visual-studio-2015 visual-studio-2017

5
推荐指数
1
解决办法
110
查看次数

Pandas/numpy 加权平均 ZeroDivisionError

创建 lambda 函数来计算加权平均值并将其发送到字典。

wm = lambda x: np.average(x, weights=df.loc[x.index, 'WEIGHTS'])

# Define a dictionary with the functions to apply for a given column:
f = {'DRESS_AMT': 'max', 
     'FACE_AMT': 'sum',
     'Other_AMT': {'weighted_mean' : wm}}

# Groupby and aggregate with dictionary:
df2=df.groupby(['ID','COL1'], as_index=False).agg(f)
Run Code Online (Sandbox Code Playgroud)

此代码有效,但如果权重总计为 0 ,则加权平均 lambda 函数会失败ZeroDivisionError。在这些情况下,我希望输出“Other_AMT”仅为 0。

我阅读了有关使用 np.ma.average (屏蔽平均值)的文档,但无法理解如何实现它

python numpy divide-by-zero weighted-average pandas

5
推荐指数
1
解决办法
4162
查看次数

go float 零除编译器错误

这种行为有何意义?仅打印编译器警告而不是错误不是更有意义吗?

func main() {
var y float64 = 0.0
var x float64 = 4.0 / y
fmt.Println(x)
}
Run Code Online (Sandbox Code Playgroud)

+信息

func main() {
var x float64 = 4.0 / 0.0
fmt.Println(x)
}
Run Code Online (Sandbox Code Playgroud)

prog.go:9:22:除以零

go divide-by-zero

5
推荐指数
1
解决办法
3762
查看次数

在代码中没有明显划分的地方除以零错误

以下代码源自此处的一个问题。(我知道代码有几个逻辑问题,但我不明白它们是如何导致这个问题的。)

编辑: 我在 Windows 上使用 CLANG,并显示常见的编译警告。

它产生在所指示的线被零除故障(第一循环中的语句。),但也有没有明显的分歧。任何人都可以提供一些有关为什么会发生此错误的见解吗?

编辑 2:每评论:将函数中的第三个参数sepia

void sepia(int height, int width, RGBTRIPLE image[height][width])
Run Code Online (Sandbox Code Playgroud)

void sepia(int height, int width, RGBTRIPLE image[3][4])
Run Code Online (Sandbox Code Playgroud)

消除除以零误差。为什么?

typedef struct {
    double rgbtRed;
    double rgbtGreen;
    double rgbtBlue;
}RGBTRIPLE;

RGBTRIPLE image[3][4];

void sepia(int height, int width, RGBTRIPLE image[height][width])
{
    double sepiaRed = 0.0;
    double sepiaGreen = 0.0;
    double sepiaBlue = 0.0;
    // over height
    for (int h = 0; h < height; h++)
    {
        // over width …
Run Code Online (Sandbox Code Playgroud)

c divide-by-zero

5
推荐指数
1
解决办法
107
查看次数

是否可以强制 Clojure 使用原始类型而不是盒装版本?

我有以下代码示例:

(type (apply / [5.0 0]))
Run Code Online (Sandbox Code Playgroud)

它引发意外错误 - “除以零”(预期行为:返回 Inf)

可能是由于自动装箱而发生的 - 可以预防吗?

java boxing clojure division divide-by-zero

5
推荐指数
1
解决办法
252
查看次数