double类型与float类型数据值的比较?

float f0=4.5f;
       double d0=45.0/10;
	   System.out.println("d0="+d0+"d0=f0吗?"+(d0==f0));//true
	       float f00=0.1f;
	       double d00=1.0/10;
	       System.out.println("d00="+d00+"d00=f00吗?"+(d00==f00));//false

请问这是怎么回事呀?两个运算有区别吗?

qq_阳光下的海风_0
浏览 2539回答 3
3回答

大咪

精准度的问题。。。一个双精一个单精

yanrun

应该是精度问题,当不同类型的数相互转换的时候可能会因为存储时的精度不同而出现错误,例如在我的电脑上d00-foo=-1.4901161138336505E-9,所以进行比较的时候最好还是使用同种类型的数,否则可能会出现意想不到的错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java