Java除法运算的陷阱计算机等级考试
文章作者 100test 发表时间 2010:01:01 12:31:08
来源 100Test.Com百考试题网
除法运算谁不会啊,很多人不屑一顾,真是无知者无畏!
其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更安全。
数学除法规定,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.
/**
* 浮点型数据的除法运算测试
*
*/
public class TestZero {
public static void main(String[] args) {
System.out.println("------------Double型----------").
Double x1 = div(2.3, 0.0).
Double x2 = div(2.3, -0.0).
Double x3 = div(0.0, 0.0).
Double x4 = div(0.0, -0.0).
Double x5 = div(0.0, 0.1).
Double x6 = div(0.0, -0.1).