java的double的精度问题
在java中,使用double进行运算,有时会出现精度丢失的问题,值会有那么0.00000***1偏差的偏差,导致匹配校验常常出现问题
解决方案如下:
/**
* 对double数据进行取精度.
* @param value double数据.
* @param scale 精度位数(保留的小数位数).
* @param roundingMode 精度取值方式.
* @return 精度计算后的数据.
*/
public static double round(double value, int scale,
int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
double d = bd.doubleValue();
bd = null;
return d;
}
/**
* double 相加
* @param d1
* @param d2
* @return
*/
public double sum(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.add(bd2).doubleValue();
}
/**
* double 相减
* @param d1
* @param d2
* @return
*/
public double sub(double d1,double d2
相关文档:
commons-beanutils-1.8.0.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
commons-collections.jar 不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
commons-lang-2.4.jar不加这个包
java.lang.NoClassDefFoundError: org/apa ......
转 : http://www.jcourse.cn/read/234
2009-03-02 作者:
zhangtaolv
在我们日常开发中,经常会遇到对文本的操作,并且在一般的MIS系统中,文本操作尤为多,如用户名、文章内容、文章标题、合同内容等。在之前的教程中,我也给大家讲解了Java中最基本的字符串操作的类,String。在之前的教程中我也给大家讲了Str ......
程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来更容易,也可以快速的不费力气的借鉴别人的编码。对将来维护你编码的人来说,你的编码越优化,他们就越喜欢你的编码,理解起来也就越 ......
英文网站
http://www.javaalmanac.com - Java开发者年鉴一书的在线版本,想要快速查到某种Java技巧的用法及示例的代码这是一个不错的去处.
http://www.onjava.com - O'Reilly的Java网站. 每周都有新文章.
http://java.sun.com - 官方的Java开发者网站 - 每周都有新文章发表.
http://www.developer.com/java - 由Gamelan ......
Java设计模式之Facade模式 GOF《设计模式》一书对Facade模式是这样描述的:
为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。
大致意思是说:使用一种比原有方式更简单的办法与系统交互。例如,我们把一个很重要的文件,放在了第二抽屉里,而第二个抽屉的� ......