java如何判断两个浮点数(float类型)是否相等

arielxp 2010-03-09 08:24:00
java如何判断两个浮点数(float类型)是否相等?/
...全文
10750 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
anyin89 2011-01-07
  • 打赏
  • 举报
回复
public static boolean equals(float a ,float b){
if( a<b+0.000001f && a>b-0.000001f)
return true ;
return false ;
}
darxin 2010-03-10
  • 打赏
  • 举报
回复
对于float型的比较,先使用Float.floatToIntBits转换成int类型的值,然后使用==操作符比较int类型的值;
对于double型的比较,先使用Double.doubleToLongBits转换成long类型的值,然后使用==操作符比较long类型的值。

float f1 = 0.9999999f;
float f2 = 1f;
boolean value = (Float.floatToIntBits(f1) == Float.floatToIntBits(f2));
System.out.println(value);
猫儿爷爷 2010-03-09
  • 打赏
  • 举报
回复
==
musiclee 2010-03-09
  • 打赏
  • 举报
回复
float1/float2>1 =1 <1
junmasky 2010-03-09
  • 打赏
  • 举报
回复
基本数据类型用 ==进行判断
yxq08nt 2010-03-09
  • 打赏
  • 举报
回复
精度~
内容太短了~



star598388532 2010-03-09
  • 打赏
  • 举报
回复
春哥说:回帖是一种美德~
soulx 2010-03-09
  • 打赏
  • 举报
回复
涉及到浮点型数据运算的时候,最好用BigDecimal处理,避免出现不必要的麻烦。
woshayawo 2010-03-09
  • 打赏
  • 举报
回复
可以比较两个float值的差,当他们的差的绝对值小于一个极小的数值时,比如说10的-6次方,则认为二者相等!
xllee 2010-03-09
  • 打赏
  • 举报
回复
不能判断,底层是基于2进制的.不同机器解析后的数字不可能(大多数)相同.
progrose 2010-03-09
  • 打赏
  • 举报
回复
浮点数为基本数据类型,直接使用==即可
wzumath 2010-03-09
  • 打赏
  • 举报
回复
具体要看什么样的浮点数比较
0.9999999f==1f //true
0.9f==1f //false
这个和浮点数在计算机中的存储有关,浮点数最高精度为8bit
amt867 2010-03-09
  • 打赏
  • 举报
回复
用“==”就可以了,不用其他的了
jessewizard 2010-03-09
  • 打赏
  • 举报
回复
同楼上。。。。。。。。。。。
wzju64676266 2010-03-09
  • 打赏
  • 举报
回复
用==不就可以了吗?

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧