一个不会报错的除0

原创 2016年06月01日 20:50:01

C语音

对于除0,我们有天然的认识,一定要对除数做检查,如果不检查

对于int,直接就coredump

对float而言,没有coredump,但是数据却是异常,一直到无法理解


实验结果

Int = float / int;(无coredump);

Int = int / float ; (无coredump;

Int = int / int;(存在coredump);

现在的问题来了,在以上结果中,我们如何检查分母的检查,这里是我们的关心的


可以总结出来,无论分母或者分子存在float,对分母的检查,必须是严格的,


int必须对0的检查


float型必须的误差范围在1e-5范围内;

const float EPSINON = 0.00001;

if((x >= - EPSINON) && (x <= EPSINON))

 



为什么会说了一个大家都知道的问题?

1、怎么检查分母的问题

2、程序中有很多检查办法,我们需要甄别其中的检查,可能有的检查形同虚设


相关文章推荐

hibernate中查询全部记录返回list,但是list.get(0)会报错

hibernate中查询全部记录返回list,但是list.get(0)会报错 开源中国推出 PaaS@OSC 代码演示和运行平台 private int ...

7_13发现了一个小问题为啥在do_line函数里赋值语句在变量定义语句之前就会报错?

1.在变量定义之前出错: R*_*G:vim 7_13.c   1 #include "apue.h"   2 #include   3 #define TOKEN 5   4 void ...

Android studio 打开一个新项目后会报错

报错信息如下:Error:Connection timed out: connect. If you are behind an HTTP proxy, please configure the p...

头文件里面实现一个函数,在两个cpp中包含,则重复定义,如果加上inline则不会报错

为什么类的定义应当写在头文件中,从而被多个源文件包含?比如myclass.h定义了一个类myclass(只定义类,不定义成员函数), file1.cpp里#include "myclass.h",编译...

sqlserver中user是一个关键字,不要用它作为表名,否则会报错。

工作经验很重要,用多了,就能发现更多的问题。 sqlserver中user是一个关键字,不要用它作为表名,否则会报错。 sqlserver中user是一个关键字,不要用它作为表名,否则会报错。 ...

同一个Thread启动第二次会报错java.lang.IllegalThreadStateException

先实现Thread代码public class TestThread { public static void main(String[] args) { for (int i ...

tp5:为什么find()出来的数据有时候可以用toArray() 有时候会报错?

如图     find()出来的肯定是个对象,那为什么有时候会报这个错,有时候又可以正常使用呢? 原因在于 里面有个空元素,空元素肯定不能toArray转化成数组,所以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个不会报错的除0
举报原因:
原因补充:

(最多只允许输入30个字)