标签: divide-by-zero

PostgreSQL在订购时除以零

我需要在postgres中执行此查询,但我无法摆脱此错误

    ERROR: division by zero
SQL state: 22012
Run Code Online (Sandbox Code Playgroud)

这是查询:

select id,rates_sum,rates_count from tbl_node  order by rates_sum/rates_count DESC;
Run Code Online (Sandbox Code Playgroud)

我知道我可以添加一个小值,rates_count但我得到不准确的值.

有没有办法让postgres忽略这个错误,或使用if语句来检查零并用任何数字替换它们.再次按顺序by子句中的错误.

谢谢

postgresql sql-order-by divide-by-zero

3
推荐指数
1
解决办法
5590
查看次数

为什么将整数除以零并将其强制转换为浮点数会产生无穷大?

我已经在这个主题上搜索了不同的问题,但没有明确的想法.检查此代码:

class Test{
    public static void main(String[] s){
        int a=5;
        float b=(float)a/0;
        System.out.print(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是Infinity.但我没有得到的东西ainta/0必须抛出异常.那怎么能显示输出Infinity呢?

java floating-point divide-by-zero

3
推荐指数
1
解决办法
1094
查看次数

为什么0 mod 0出错?

如果我输入:

int main() { return 0 % 0; }
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误:

error C2124: divide or mod by zero
Run Code Online (Sandbox Code Playgroud)

这背后的原因是什么?答案不是零吗?

c++ math modulo divide-by-zero visual-c++

3
推荐指数
2
解决办法
1万
查看次数

SQL语句中的SQL除以零错误

我是SQL的新手,可以用手.我在SELECT语句中得到以下错误:

SUM(Cast((replace(replace(replace (p.[Total Sales], '$', ''), '(','-'),  ')','')) as money)) - SUM(Cast((replace(replace(replace (p.[Total Cost], '$', ''), '(','-'),  ')','')) as money)) / SUM(Cast((replace(replace(replace (p.[Total Sales], '$', ''), '(','-'),  ')','')) as money)) as new_bal
Run Code Online (Sandbox Code Playgroud)

我知道我需要使用CASE,但我不确定应用程序.

mysql sql case divide-by-zero

3
推荐指数
1
解决办法
169
查看次数

几乎相同的函数,但只有一些除以0错误

给出了一个简单的矩阵 - 矩阵元素划分功能.但是,运行int8和int16版本会返回整数除以来自valgrind的0错误,以及来自命令行的seg错误.int32,spfp和dpfp函数,我确保除了类型声明之外是相同的文本,没有这个问题.矩阵中的值随rand()函数随机生成.为什么只有部分返回除以0错误?

第一功能

double matrix_matrix_div_elementwise_int8(int size,int threads)
{
//initialize index variables, random number generator, and timer
int i;
int size2D=size*size;
srand(SEED);
struct TIME_STRUCT start,end;

//allocate memory for matrices
INT8_TYPE *A=malloc(sizeof(INT8_TYPE)*(size*size));
INT8_TYPE *B=malloc(sizeof(INT8_TYPE)*(size*size));
INT8_TYPE *C=malloc(sizeof(INT8_TYPE)*(size*size));

//initialize input matrices to random numbers
//initialize output matrix to zeros
for(i=0;i<(size*size);i++)
{
    A[i]=rand();
    B[i]=rand();
    C[i]=0;
}

//serial operation
if(threads==1)
{
    //start timer
    TIME_GET(&start);
    //computation
    for(i=0;i<size2D;i++)
    {
        C[i]=A[i]/B[i];
    }
    //end timer
    TIME_GET(&end);
}
//parallel operation
else
{
    //start timer
    TIME_GET(&start);
    //parallelize with OpenMP
    #pragma omp …
Run Code Online (Sandbox Code Playgroud)

c divide-by-zero

3
推荐指数
1
解决办法
69
查看次数

Matlab除以0:Inf或-Inf

我无法弄清楚为什么除以0会在以下两种情况下给出不同的结果. amort是一个计算常量摊销计划的函数.我们现在唯一关心的是A的最后一个元素正好是0.

amort = @(r,M) ((1+r).^(0:M)' - (1+r).^M) ./ (1-(1+r).^M)

A = amort(0.03, 20);

>> A(end)==0
ans =
     1
Run Code Online (Sandbox Code Playgroud)

看起来很奇怪的是:

>> 1/0
ans =
   Inf
>> 1/A(end)
ans =
  -Inf
Run Code Online (Sandbox Code Playgroud)

然而

>> sign(A(end))
ans =
     0
>> 1/abs(A(end))
ans =
   Inf
Run Code Online (Sandbox Code Playgroud)

这怎么可能,为什么?有某种隐藏的"标志"吗?

matlab division infinite zero divide-by-zero

3
推荐指数
1
解决办法
83
查看次数

在熊猫计算中处理零除

我有以下数据:

a = pd.Series([1, 2, 3])
b = pd.Series([0, 0, 0])
Run Code Online (Sandbox Code Playgroud)

如果被零除,在某些情况下我想

  1. 将结果设置为系列之一
  2. 将结果设置为特定值

但是以下给出了“意外”结果:

a.div(b, fill_value = 0)
0    inf
1    inf
2    inf

a.div(b).fillna(0)
0    inf
1    inf
2    inf

a.div(b).combine_first(a)
0    inf
1    inf
2    inf
Run Code Online (Sandbox Code Playgroud)

我想到达:

情况1:将数据设置为特定值

0    0
1    0
2    0
Run Code Online (Sandbox Code Playgroud)

情况2:将值设置为特定的序列

0    1
1    2
2    3
Run Code Online (Sandbox Code Playgroud)

python divide-by-zero pandas

3
推荐指数
1
解决办法
3676
查看次数

Redshift除以零益智游戏

我用这段代码得到0除错:

CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1 * INT2 / DENOMINATOR)
ELSE 0
END AS RATIO
Run Code Online (Sandbox Code Playgroud)

但是,当我更改为以下代码时,它工作正常.

CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1) * INT2 / DENOMINATOR
ELSE 0
END AS RATIO
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解原因,以便将来可以避免这种情况吗?BTW,第一个样本在Vertica中运行.我实现了总结需要求和的东西而不是在求和之前进行计算是一种更好的编程实践.不过仍然很好奇.

sql divide-by-zero vertica amazon-redshift

3
推荐指数
1
解决办法
7794
查看次数

“大多数 C 系统提供逻辑上无限的浮动值”是什么意思?

最初我将变量 x 和 y 声明为 int 类型:

#include<stdio.h>   

     int main(){
        int x, y = 0 ;
        x = 1 / y;
        printf("%d", x);

        return 0;    
    }
Run Code Online (Sandbox Code Playgroud)

程序崩溃(原因很明显)。

现在我将变量 x 和 y 声明为 double:

#include<stdio.h>   

 int main(){
    double x, y = 0 ;
    x = 1 / y;
    printf("%d", x);

    return 0;    
}
Run Code Online (Sandbox Code Playgroud)

但是输出:0。(为什么?)

然后我在 printf 中将 %d 更改为 %f:

#include<stdio.h>   

 int main(){
    double x, y = 0 ;
    x = 1 / y;
    printf("%f", x);

    return 0;    
}
Run Code Online (Sandbox Code Playgroud)

输出:1.#INF00

我不明白这里发生了什么。 …

c precision divide-by-zero format-specifiers

3
推荐指数
1
解决办法
71
查看次数

服务器端的 Firebird 计算(计算)字段

SQL和开发新手,我有一个包含字段(索引、名称、人口、区域)的表(国家/地区)通常我添加一个客户端(Delphi)计算字段(DENSITY)和 OnCalcField :

COUNTRIES.DENSITY=COUNTRIES.POPULATION / COUNTRIES.AREA
Run Code Online (Sandbox Code Playgroud)

尝试更改为 Firebird 计算字段以在服务器端完成所有计算,我创建了一个名为密度的字段,并在 IBEXPERT“计算源”列中:

ADD DENSITY COMPUTED BY ((((COUNTRIES.POPULATION/COUNTRIES.AREA))))
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当 Record.AREA = 0 我有一个除以零错误。

我的问题是如何避免这种情况,例如使用 IF THEN 条件来避免在除法器为 0 时计算字段或在这种情况下使结果仅为 =0。

我的环境:Delphi RIO、Firebird 3.0、IBExpert

firebird divide-by-zero calculated-field computed-field

3
推荐指数
1
解决办法
284
查看次数