java除法的陷阱
Java除法运算的陷阱
除法运算谁不会啊,很多人不屑一顾,真是无知者无畏!
其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更安全。
数学除法规定,0不能做除数,因为会得到一个无穷大数据。
西面看看Java中如何处理这些特殊情况:
1、整数的除法:
0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数做除法运算,则商位Float或者Double类型,例如:
System.out.println("------------Int相关除法----------");
System.out.println("12/10="+12/10);
System.out.println("12f/10="+12f/10);
System.out.println("12d/10="+12d/10);
System.out.println("12/10f="+12/10d);
System.out.println("12/10d="+12/10f);
------------Int相关除法----------
12/10=1
12f/10=1.2
12d/10=1.2
12/10f=1.2
12/10d=1.2
2、Double(或Float)除法运算:
0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候,得到的一个带符号位0.0:
package lavasoft.zerotest;
/**
* 浮点型数据的除法运算测试
*
* @author leizhimin 2009-12-21 9:00:37
*/
public class TestZero {
public static void main(String[] args) {
System.out.println("------------Double型----------");
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
1 EL 自定义函数
1.1 EL 自定义函数:在 EL 表达式中调用的某个 Java 类的静态方法,这个静态方法需在 web 应用程序中进行配置才可以被 EL 表达式调用。EL 自定义函数可以扩展 EL 表达式的功能,让 EL 表达式完成普通 Ja ......
stack[0] 表示获得当前方法
1.
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
stack[0].getMethodName();
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
stack[
0
].getMethodName();
new Exceptio ......
serialVersionUID 用来表明类的不同版本间的兼容性。
有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;(对应修复方法1)
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:
private static final long serialVersionUI ......
public class FtpTest {
public FtpTest() {
// TODO Auto-generated constructor stub
}
/**
* 上传ftp文件
* @param upFile 上传文件详细信息
* @param upDirectory 上传ftp目录
*/
public static void ftpUpload(String upFile,S ......