java 关于BigDecimal 和BigInteger

BigDecimal 是比doubule更加精确的数,再算小数的时候由于二进制的原因double 和BigDecimal 假如结果是0.2,那么只能精确到0.199999999,解决这个方案

double 转String

class DoubleToString {

    public static String test2(double dou) {

        Double dou_obj = new Double(dou);

        NumberFormat nf = NumberFormat.getInstance();

        nf.setGroupingUsed(false);

        String dou_str = nf.format(dou_obj);


        return  dou_str;

    }

double c = 10.1;

    double b = 9.3;

    BigDecimal d = new BigDecimal(DoubleToString.test2(c));

    BigDecimal e = new BigDecimal(DoubleToString.test2(b));

      System.out.println(d.subtract(e).toString());

或者 

double c = 10.1;

    double b = 9.3;

    BigDecimal d = BigDecimal.valueOf(c);

    BigDecimal e = BigDecimal.valueOf(b);

    System.out.println(d.subtract(e));

BIgInteger是Integer 范围更大的integer 类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • Java 语言支持的类型分为两类:基本类型和引用类型。整型(byte 1, short 2, int 4, lon...
    xiaogmail阅读 1,369评论 0 10
  • 并没有认真看电影的态度,平日对电影也并不热衷。有时候只是电影频道正好播放感兴趣的影片,有时也许只是跟风。看过的电影...
    落野星寻阅读 379评论 0 0
  • 目标 对锤子有所了解的应该知道3.0系统出了个叫“大爆炸”的功能,会将一段文本炸开成一个个词,用来快速地“提取”信...
    长不胖的Garfield阅读 1,803评论 0 6
  • "再给我十分钟!再给我十分钟就好!!"这是我听到的@低低低低低素质青年喊出的最后的话。作为地球防御委员会的首席科学...
    Don半兽人阅读 192评论 0 1