`
jzzwy
  • 浏览: 103751 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

除以0不一定会抛出java.lang.ArithmeticException: / by zero

    博客分类:
  • J2SE
阅读更多
最近在做项目的时候,页面上居然出现了一些特殊的字符,究其原因,原来0/0也有不报
java.lang.ArithmeticException: / by zero的时候

对于0是浮点数的情况:
System.out.println(-1/0.0);//-Infinity负无穷大
System.out.println(1/0.0);//Infinity正无穷大
System.out.println(0/0.0);//NaN

/**
   商品javaBean
 * @author Start
 */
public class Product {
	private double amount;// 销售额

	private double qty;// 销售数量

	private double avg_amount;// 平均销售额

	public double getAmount() {
		return amount;
	}

	public void setAmount(double amount) {
		this.amount = amount;
	}

	public double getQty() {
		return qty;
	}

	public void setQty(double qty) {
		this.qty = qty;
	}

	public double getAvg_amount() {
		return avg_amount;
	}

	public void setAvg_amount(double avgAmount) {
		avg_amount = avgAmount;
	}

}


public class ProductService {
	public static void main(String[] args) {
		Product product=new Product();
		product.setAmount(10000);
		/**
		 * the result is Infinity
		 */
		System.out.println(product.getAmount()/product.getQty());
		/**
		 * this result is NaN
		 */
		product.setAmount(0);
		System.out.println(product.getAmount()/product.getQty());
		
	}
}


分享到:
评论
2 楼 jzzwy 2012-02-16  
    
1 楼 danceflash 2012-02-14  
在浮点数的世界里不会抛出除0错,而是会返回正无穷大或负无穷大。
究其原因,可能是因为在浮点数运算中,不存在真正意义上的0,而是一个无限接近于0的浮点数。

请参考:http://zhidao.baidu.com/question/42905625.html

相关推荐

    Java中常见错误和异常解决方法.doc

    2. **Exception in thread "main" java.lang.ArithmeticException: / by zero**:这表示你在代码中执行了一个除以零的操作。要避免这个异常,需要在进行除法运算之前检查除数是否为零。 3. **...

    JAVA抛出异常的三种形式详解

    Exception in thread "main" java.lang.ArithmeticException: / by zero at io.renren.modules.sys.controller.SysUserController.main(SysUserController.java:154) ``` 在上面的代码中,当程序执行到整数除以...

    Java抛出异常.pdf

    `会创建一个`ArithmeticException`对象并抛出,表示数学运算中的错误。 2. **异常处理的基本结构** - Java异常处理使用了所谓的`try-catch`块。在`try`块中,我们放置可能会抛出异常的代码,如果在`try`块内抛出了...

    Java程序设计异常处理实例

    2. `ArithmeticException`:在进行非法数学运算时抛出,比如除以零。 3. `FileNotFoundException`:当尝试打开不存在的文件时抛出。 4. `IOException`:在输入/输出操作中出现错误时抛出,这是一个广义的异常,通常...

    Java常见异常和错误[定义].pdf

    Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionDemo01.main(ExceptionDemo01.java:6) ``` ##### 解决方法: 1. **除数检查**:在进行除法运算前,检查除数是否为零。 通过上述...

    Java Exception Handling 内容.ppt

    当尝试执行除以零的操作时,Java会抛出`ArithmeticException`。这是通过使用异常处理机制来确保程序不会因这种错误而崩溃。例如: ```java try { int result = 10 / 0; // 这将引发ArithmeticException } catch ...

    Java第10章 异常处理含源代码

    2. **异常的抛出**:当一个异常发生时,Java会创建一个异常对象并"抛出"(throw)它。这可以通过使用`throw`关键字或由系统自动完成,比如在遇到除以零这样的错误时。 3. **异常的捕获**:为了处理异常,我们需要...

    Java语言程序设计(异常处理、线程、集合操作).ppt

    // 这里会抛出ArithmeticException: / by zero } } ``` 在编译时,Java编译器会检查是否所有可能抛出异常的代码都得到了适当的处理。如果没有,编译器会报错,提示需要添加异常处理代码。 总的来说,Java的异常...

    java异常处理

    Exception in thread "main" java.lang.ArithmeticException: / by zero at Agesr.main(ExcptionTest.java:4) ``` #### 错误与异常的区别 错误通常指更为严重的问题,如内存溢出等,这些问题往往是不可预测且难以...

    浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别

    而在示例代码2中,尝试执行除零操作会导致`ArithmeticException`,`e.getMessage()`会返回"by zero",这表明发生了除以零的错误。 相反,`e.toString()`方法返回的是异常的完整描述,包括异常的类型和详细的异常...

    Act7_CAJ:Actividad 7-Java上的计算

    例如,在进行除法运算时,如果不小心除以零,Java会抛出`ArithmeticException`。通过异常处理,我们可以优雅地处理这种情况,而不是让程序崩溃: ```java try { int result = 10 / divisor; } catch (Arithmetic...

    Spocklight:有关Spock的JVM测试框架的博客文章

    def "除以零抛出ArithmeticException"() { when: "尝试除以零" int result = 5 / zero then: "应该抛出ArithmeticException" thrown ArithmeticException } ``` 5. **断言库扩展** Spock允许你自定义或...

Global site tag (gtag.js) - Google Analytics