易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 小数精确计算问题

System.out.println(2.00 -1.10);//0.8999999999999999
上面的计算出的结果不是0.9,而是一连串的小数。问题在于1.1 这个数字不能被精确表示
为一个double,因此它被表示为最接近它的double 值,该程序从2 中减去的就是这个值,
但这个计算的结果并不是最接近0.9 的double值。
一般地说,问题在于并不是所有的小数都可以用二进制浮点数精确表示。
二进制浮点对于货币计算是非常不适合的,因为它不可能将1.0 表示成10 的其他任何负次
幂。
解决问题的第一种方式是使用货币的最小单位(分)来表示:System.out.println(200-110);//90
第二种方式是使用BigDecimal,但一定要用BigDecimal(String)构造器,而千万不要用
BigDecimal(double)来构造(也不能将float或double型转换成String再来使用BigDecimal(String)
来构造,因为在将float或double转换成String时精度已丢失)。例如new BigDecimal(0.1),它
将返回一个BigDecimal,也即
0.1000000000000000055511151231257827021181583404541015625,正确使用BigDecimal,程
序就可以打印出我们所期望的结果0.9:
System.out.println(new BigDecimal("2.0").subtract(new BigDecimal("1.10")));// 0.9
另外,如果要比较两个浮点数的大小,要使用BigDecimal的compareTo方法。


相关文档:

java 进制转换

public class Test { 
      public static void main(String args[]) {  
        System.out.println(Integer.toBinaryString(20));   //十进制-->2进制  
        System ......

java性能监控工具 btrace

btrace是sun推出的一款java性能监控工具,利用java agent 和 jvm attach技术,可以不停机的情况下监控线上情况,并且做到最少的侵入,占用最少的系统资源。
详细见官方文档
另外btrace有很严格的限制,比如拼接字符串、循环、递归、以及我们平时经常用的一些方法都不可以用,他有他自己专门的类库。
btrace还提供了Vi ......

用java实现cache


在开发项目工程时,经常会遇到保存某些值放到系统的cache中,现用Cache.java和CacheManager.java来管理。具体代码分别如下:
public class Cache {
       
private String key;
       
private Object value;
    &n ......

c++与java的构造函数

今天继续学习java和android平台  java的学习算是补充,因为没有java基础也做不出什么东西来
今天看到java用this关键字来重载构造方法,在这里做个笔记class a_sample{
public int x,y.z;
a_sample(int x){
this.x=x;
}
a_sample(int x,int y){
this(x);
this.y=y;
}
a_sample(int x ......

java 注释 : annotations 元数据

annotations : 注释
好处
1.文档编制
2.编译器检查
3.代码分析
JSR 175 是编程语言的元数据工具,为将元数据合并到核心java语言中提供正式理由和说明
基本知识:
注释采用"@"标记形式,后面是注释名称,然后在需要数据时,通过name=value对向注释提供数据
注释的三个基本种类:
    标记注释 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号