tinguo002

 

string类型转为double 值变化了


http://zhidao.baidu.com/link?url=NeIRa5raPCZw7sR2DR1hzNk8aewMuNdDCNJ83qRMMWWfXaPVct7rWqVNWZnfkQAroEzRvKn5XxK4rK1lWEl2-_

精度的问题!用基本类型的double类型进行运算可能会丢失精度。而且特别大的数又没法处理。所以如果用BigDecimal这个类问题就解决了。这个类在java.Math包下。它可以处理任意精度的数据。对于楼主出现的问题,我从新写了段代码,供楼主参考。但是主要是还得查看API!代码如下:

import java.math.*;

public class oopp

{

 public static void 搜索main(String[] args)

 {

  String a="1467000000";

  double aa=Double.parseDouble(a);

  BigDecimal beichushu=new BigDecimal(aa);

  BigDecimal chushu=new BigDecimal(100000000);

  BigDecimal result=beichushu.divide(chushu,new MathContext(4));//MathConText(4)表示结果精确4位!

  boolean isTrue=String.valueOf(result).equals("14.67");

  System.out.println("1467000000除以100000000="+result);

  System.out.println(result+"与14.67比较的结果是"+isTrue);

 }

}





欢迎大家访问我的个人网站 萌萌的IT人

posted on 2014-04-04 14:39 一堣而安 阅读(701) 评论(0)  编辑  收藏 所属分类: java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜