请问各位是如何判断一个浮点数小于、小于等于零的? 请问各位,在java中你们是如何判断一个浮点数小于、小于等于零的?我这里假设两个数相等的误差是<0.000001。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 >,<,==难道还有什么特别的? 用BigDecimal的compareTo()System.out.println(new BigDecimal("0.39999999999999997").compareTo(new BigDecimal("0.3999999999999999769")) == 0); System.out.println(0.39999999999999997 == 0.3999999999999999769);前者输出false,后者输出true.虽然这里误差比你要求的小,但是用BigDecimal肯定是对的。 精度需求高的话 用BigDecimal是没错的。 为什么BigDecimal更加精确呢?底层是怎样实现的呢?哪位大侠可以指点指点? 好好看看java核心技术卷1和卷2,上面写的很有用, 允许误差还是按我前贴的,我一般在判断一个浮点数是否等于零的时候用如下的表达式:if ( Math.abs(var)<0.000001 ){ System.out.println("等于零");}这样应该没什么不妥吧? 浮点数直接使用运算符进行计算或者逻辑运算符做判断都是不精确的,注意通过String形式(一定得这么做,不然还是没保证)转换成BigDecimal来处理喵~~`` 这个数字本身就是小于零的话,用自己减去abs一下看看是否小于零 java连接数据库字符集or编码问题 jacob无法调用部分COM组件接口 自动打包的问题~ 求解。谢谢了 为什么有错误,请帮忙,谢谢! prepared statement的 SQL injection问题 请问什么字体每个字符是等宽的 如何让这段main执行到else部分 关于java反编译 这有什么区别吗??? 急救!!JSP表单提交后的内容无法插入数据库 插入数据问题 程序里关于!的疑问
难道还有什么特别的?
System.out.println(new BigDecimal("0.39999999999999997").compareTo(new BigDecimal("0.3999999999999999769")) == 0);
System.out.println(0.39999999999999997 == 0.3999999999999999769);
前者输出false,后者输出true.
虽然这里误差比你要求的小,但是用BigDecimal肯定是对的。
if ( Math.abs(var)<0.000001 ){
System.out.println("等于零");
}
这样应该没什么不妥吧?
注意通过String形式(一定得这么做,不然还是没保证)转换成BigDecimal来处理喵~~``