表达式3-2.6==0.4的值是什么?_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 表达式3-2.6==0.4的值是什么?

表达式3-2.6==0.4的值是什么?

 2015/4/16 0:30:18  Cb123456  程序员俱乐部  我要评论(0)
  • 摘要:今天在一本书上看到的,觉得很有道理,又涨知识了,就来分享一下.1.我的第一反应就是为true,因为'-'的运算等级比'=='高,所以0.4==0.4,然后就是true,可是这是错的2.代码演示:packageTest;importjava.math.BigDecimal;publicclasssss{publicstaticvoidmain(String[]args){sssss=newsss();ss.ImpreciseResult();ss.PrecisionResult();
  • 标签:什么 表达式

? ? 今天在一本书上看到的,觉得很有道理,又涨知识了,就来分享一下.

? ?1.我的第一反应就是为true,因为'-'的运算等级比'=='高,所以0.4==0.4,

然后就是true,可是这是错的

?

? ? 2.代码演示:

??

class="java" name="code">package Test;

import java.math.BigDecimal;

public class sss {

	public static void main(String[] args) {
		
		sss ss = new sss();
		ss.ImpreciseResult();
		ss.PrecisionResult();
	}
	
	public void ImpreciseResult(){
		
		System.out.println(3-2.6);//输出3和2.6的差值
		System.out.println(3-2.6==0.4);//输出比较结果
		
	}
	
	public void PrecisionResult(){
		
		BigDecimal  x = new BigDecimal("3");//创建3的BigDecimal对象
		BigDecimal  y = new BigDecimal("2.6");//创建2.6的BigDecimal对象
		BigDecimal z=x.subtract(y);//计算3和2.6的差值
		double value=z.doubleValue();//转成double
		System.out.println(value);//计算结果
		System.out.println(value==0.4);//比较结果
	}
}

??

? 3.运行结果:

??
??
?

? 看到了吧,原因是:Java中基本类型的浮点数运算是不精确的,在实际中,为了得到精确的计算结果,对于浮点数的运算一般不使用基本数据类型来实现,而是使用BigDecimal类实现.

? ?希望对你有帮助.

?

?

  • 大小: 8.9 KB
  • 查看图片附件
发表评论
用户名: 匿名