`
剑锋凛冽
  • 浏览: 73441 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

1/0和1.0/0除零错

阅读更多

搞IT的每个人都知道,0是不能作为除数的,这是操作系统在底层就存在一个除零中断,所以绝大多数高级编程语言(至少是我知道的C、C++、Java等)都是不允许除零的。

但是请看下面这两段代码

 

/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 System.out.println(1/0);
	}

 就会产生常见的运行时异常

java.lang.ArithmeticException: / by zero

异常

但是下面的代码

 

/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 System.out.println(1.0/0);
	}

 却没有异常抛出,而是输出Infinity。

为什么?

这是因为Java在处理表达式计算时,默认对整数型0转型成0.0,而浮点数在计算机内是无法绝对精确的表示的,因此这个0.0在计算机内部只是一个接近0的极小浮点值而已,所以很容易的可以想出为什么输出Infinity。

同样的取模运算%也存在这个问题。

这是前两天在温习Java基础知识,看《疯狂Java讲义》时看到的,留作备忘。

同时通过Python语言的实验,发现Python只要是除零都会报错ZeroDivisionError,不论是int 0还是float 0

分享到:
评论

相关推荐

    51单片机C语言编程基础及实例

    } } //给 P3_1 赋值 1,引脚 P3.1 就能输出高电平 VCC //给 P3_1 赋值 0,引脚 P3.1 就能输出低电平 GND //非零表示真,如果为真则执行下面循环体的语句 //void 表示没有输入参数,也没有函数返值,这入单片机运行...

    一个能够实现变量赋值和表达式计算的四则乘方括号运算计算器

    本程序输出时会将整数相除产生的浮点数自动进行类型转换成浮点数,也会将浮点数运算得到的整数自动类型转换成整数,也就是说1/2=0.50,2.0/1.0=2(c++的自动取整真的很蠢) c/c++为了避免与函数冲突,不允许a(b+c),...

    c语言你知识点总结

    1.0在C语言中可写成1. 0.1在C语言中可以写成.1。 3)实型数据的合法形式: a、2.333e-1 就是合法的,且数据是2.333×10-1。 b、考试口诀:e前e后必有数,e后必为整数。请结合书上的例子。 4) 整型,单精度一般是4个...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook...

    单片机篮球计分器设计.doc

    "INT1请求有/无 "INT1方式下沿 "INT1请求有/无 "INT1方式下沿 " "篮球比赛计分器利用单片机的计数器进行工作,计数器对外部脉冲的下降沿进行加1计 数,直至计满回零。作为可编程器件,单片机中的定时/计数器初始化...

    蓝桥杯试题 算法训练 统计正负数 C/C++

    时间限制:1.0s 内存限制:256.0MB 问题描述  在一维数组中分类统计正数和负数的个数。正数的个数存入变量C1中,负数个数存入变量C2中.注意这是一个程序补充的题目,你只需要补充所缺少的部分。 输入格式  无 输出...

    整理后java开发全套达内学习笔记(含练习)

    char 16bit, 0~2^16-1 (2^16=6万6) byte 8bit, -2^7~2^7-1 (2^7=128; 注意:两个 byte 数相加,变 int 型) short 16bit, -2^15~2^15-1 (2^15=32768) int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) ...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    《中国金融集成电路(IC)卡规范(3.0)》PBOC3.0

     授权金额为0的处理方式:如果授权金额为零,除非终端支付qPBOC扩展应用,具有联机能力的终端应在终端交易属性字节2的第8位表示要求联机应用密文;如果授权金额为零,除非终端支付qPBOC扩展应用,仅支持脱机的终端应...

    测试培训教材

    (1) 测试进入和退出标准。 (2) 协作流程。 (3) 缺陷跟踪管理流程。 (4) 工具平台的引入。 目前主流测试管理平台与缺陷跟踪工具: 3、QC(Quality Center)介绍 QC标准测试管理流程 QC支持的应用...

    C#微软培训资料

    <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft...

Global site tag (gtag.js) - Google Analytics