BigDecimal不要使用double来初始化

public void test() {

BigDecimal a =newBigDecimal(1.1);

BigDecimal b = BigDecimal.valueOf(1.1);

BigDecimal c =newBigDecimal("1.1");

System.out.println(a);//1.100000000000000088817841970012523233890533447265625

System.out.println(b);//1.1

System.out.println(c);//1.1

}

因为计算机01的方式对于十进制的0.1是无法精确表示的,所以对于double数字只能接近表示,如果用这个double来初始化bigDecimal的话就会出现同样的问题。

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

推荐阅读更多精彩内容

  • Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为Stri...
    DreamerRzc阅读 237,057评论 26 273
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,650评论 1 114
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,161评论 0 41
  • 20171030周慧心赏第77天 亲爱的女儿,今天在班级QQ群里看到郑老师发出来的两条信息,一条是默写第10...
    hmzhou阅读 373评论 0 3
  • 姓名:徐祖德 公司:广东思沃精密机械有限公司 230期_利他1组 272期_乐观2组志工 【日精进打卡第147天】...
    徐祖德阅读 149评论 0 0