0做除数时

2024-02-03 06:08
文章标签 除数

本文主要是介绍0做除数时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

试着编译运行下面的几行小程序:

正常编译后,运行发生了异常,程序被终止运行,啥也没打印出来。当然问题也是显然的,严重的除0异常。(没有人会写程序故意除以一个零,但难保来自于其它输入渠道的数据不会导致一个0除数。这里只是个例子,就简单写写了。)

我们再把程序稍微改动一点:

 

只有一处改动:被除数由“3”变成“3.0”。

结果却有所不同。当然,要说不正常结果依旧是不正常。但这次却不是严重的终止了程序的运行时异常,程序本身是正常运行的,而且有结果输出,只不过输出了一个怪怪的东西,标示这个浮点数有问题。

前后的区别在于:在第一种情况下,是两个整数相除,当除数为0时产生一个严重的除0异常,程序被终止运行;在第二种情况下,由于除法运算的第一个操作数为double型,那么除数a也被先提升为double型然后参与运算。浮点运算中,除0错误的结果不是一个运行时异常,而是得到一个“Not A Number”的特殊浮点值作为结果,当这个值被打印时就输出了那个怪怪的东西。

可以联想到的一件事情是:float/double类型是有这种特殊值的,这一点不像各种int类型。一个int32bit,不管怎么组合,其结果都是一个合法的int值。但float/double不同,float32bit或者double64bit,并非每种组合都是合法的。因此通过某种方式随意组织32bit,来试图形成一个“float随机数”的想法是不正确的。

这篇关于0做除数时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673186

相关文章

SQL server 屏蔽除数为0错误

--屏蔽除数为0错误 SET ANSI_WARNINGS off SET ARITHABORT off SET ARITHIGNORE on 这些 T-SQL 语句控制 SQL Server 的行为,特别是在处理数据和错误时的行为。下面是每个设置的具体作用: SET NOCOUNT ON: 作用: 当执行 SQL 语句时,SQL Server 通常会在每条命令执行后返回一条消息,指

力扣刷题--728. 自除数【简单】

题目描述 自除数 是指可以被它包含的每一位数整除的数。 例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 自除数 不允许包含 0 。 给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。 示例 1: 输入:left = 1, right = 22

Oracle 当除数为0时处理方式

Oracle  涉及到两个字段之前计算时出现除数为0时 a/b  计算公式 select decode(b,0,0,a/b) from SysDetail; 当b = 0时,返回值为0,否则返回a/b的结果值

SQL怎么处理除数为零

在sql中做除法处理的时候,可能需要处理除数为零的情况。 (1).case语句 处理方法是用case when ... else 来处理 (2).nullif函数 nullif函数有两个参数,定义如下: NULLIF( expression , expression ) 其作用就是:如果两个指定的表达式相等,就返回null值。   oracle中decode函数 含义解释: decod

【悟空云课堂】第三十七期:除数有可能为零(CWE-369:DivideBy Zero)

关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识! 该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。 什么是除数有可能为零缺陷? 运算操作时,除法或求余数操作容易受到除数有可能为零的影响。因此,必须在操作之前检查除法运算或求余数运算中的除数不为零。 根据除法的

除数为2的N次方取模可以用与运算替代,效率更高

取模运算在包括JAVA在内的大多数语言中的效率都十分低下,而当除数为2的N次方时,取模运算将退化为最简单的位运算,其效率明显提升(按照Bruce Eckel给出的数据,大约可以提升5~8倍) 。看看JDK中是如何实现的: Java代码: static int indexFor(int h, int length) {        return h & (length-1);

关于表达式中除数为0的容错机制的处理

说明:对于一个表达式(比如1+2/(A-B)),如果A-B为0,有时我们想这个表达式返回1,而不是0或者抛出异常。也就是局部的除数异常是允许的。这个时候就需要对公式做容错处理。 下面是用C#的处理过程,如有错误,欢迎指正 /// <summary>/// 公式容错/// 在执行公式时,会有除数为0的情况,此时不应该报错,只是包含除数为0的表达式计算结果为0,整个表达式继续执行/// 如1+

oracle余数与除数,余数与除数的关系的教学反思

余数与除数的关系的教学反思 常常有这样一种感觉,课堂真是一门永远充满遗憾的艺术。不管怎样的课堂,哪怕你再做精心的准备,总会留有一些不足的,但课堂上师生之间的互动、互融、碰撞又常常会让你不断地追求下去,让旧的遗憾不再变成遗憾。对于“余数与除数的关系”这一课,我有以下几方面的感悟。遗憾的地方——遗漏环节 一上好课,我的第一感觉就是,自己没有很好地把课演绎好。设计的环节应该是环环相扣,层层提高,让学生

leetcode_728_自除数

自除数 是指可以被它包含的每一位数除尽的数。 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 还有,自除数不允许包含 0 。 给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。 示例 1: 输入: 上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5, 6, 7