java BigDecimal :注意,这是你可能会踩到的坑[通俗易懂]

java BigDecimal :注意,这是你可能会踩到的坑[通俗易懂]在BigDecimal应用的过程中,有两个坑是我们比较容易遇到的,使用不当会出现莫名其妙的错误。1.构造函数的坑先看下面这段代码:publicvoidconstructTest(){BigDecimalvalue1=newBigDecimal(10.511);System.out.println(“value1:”+value1);BigDecimalva

大家好,又见面了,我是你们的朋友全栈君。

在BigDecimal 应用的过程中,有两个坑是我们比较容易遇到的,使用不当会出现莫名其妙的错误。

1.构造函数的坑

先看下面这段代码:

public void constructTest(){ 
   

   BigDecimal value1 =new BigDecimal(10.511);
   System.out.println("value1: " + value1);
   BigDecimal value2 = new BigDecimal("10.511");
   System.out.println("value2: " + value2);

}

按照我们的预想,value1输出的应该是10.511,可是实际的值却不是这样,如下:

value1: 10.510999999999999232613845379091799259185791015625
value2: 10.511

当我们用double类型的数据作为参数时,构造出的BigDecimal 对象value1并不能保证数据的准确性。
而用String作为参数时构造对象时,数据的准确性是有保证的。

在构造BigDecimal对象时尽量使用String作为参数

2.BigDecimal 不可变性的坑

BigDecimal 和String 一样具有对象不可变行,一旦赋值就不会再变。

public void immutableTest() { 
   

   BigDecimal count = new BigDecimal("1.3");
   count.add( new BigDecimal("9.2"));
   System.out.println("count:" + count);

}
count:1.3

执行代码会发现count不是预期的10.5,还是初始的赋值1.3
BigDecimal 在做运算时一定要保存结果

更多内容欢迎关注个人微信公众号,一起成长!
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138643.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenCV实现SfM(二):双目三维重建[通俗易懂]

    OpenCV实现SfM(二):双目三维重建[通俗易懂]使用OpenCV3.0实现双目三维重建,原理清晰,实践有效。

    2022年6月20日
    33
  • LVS集群

    LVS集群LVS1.LVS介绍LVS工作模式1.LVS介绍LVS,LinuxVirtualServerLVS是章文嵩博士发起的自由软件项目,它的官方站点是http://www.linuxvirtualserver.org。LVS工作在内核空间,实现TCP/IP协议群的四层路由,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但从Linux2.4内核以后已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。LVS采用三层结构:调度器、

    2022年7月24日
    14
  • react的map遍历_javamap遍历方式

    react的map遍历_javamap遍历方式记录一下项目制作过程中学到的一些方法,以便温习render(){return(<ulclassName={style.decoratewrapper}>{this.state.decoratedata.map((item,i)=>(<likey={i}>

    2022年9月16日
    0
  • 用python编写猴子吃桃问题_人工智能猴子摘香蕉

    用python编写猴子吃桃问题_人工智能猴子摘香蕉Java实现人工智能实验一,猴子摘香蕉,图形化展示

    2022年9月25日
    0
  • (数据库)数据库分类

    (数据库)数据库分类1.面向操作的关系型数据库典型性应用领域:ERP,CRM,信用卡交易,中小型电商数据储存方法:表格流行厂商:OracleDatabase,MicrosoftSQLServer,IBMDB2,EnterpriseDB(PostgreSQL),MySQL优点:完善的生态环境保护,事务保证/数据一致性缺点:严苛的数据模型界定,数据库拓展限制,和非结构型的结合应用较难。2.面向数据分析的关系型数据库典型性应用领域:数据仓库,商务智能,数据科学研究数据储存方法:表格流行厂商:OracleE

    2022年6月24日
    24
  • 4个基本不等式的公式高中_基本不等式公式四个叫什么名字「建议收藏」

    4个基本不等式的公式高中_基本不等式公式四个叫什么名字「建议收藏」展开全部叫做平方平均数、算术平均数、几何平均数、调和平均数1.平方平均数:又名均方根(RootMeanSquare),英文62616964757a686964616fe78988e69d8331333431376632缩写为RMS。它是2次方的广义平均数的表达式,也可称为2次幂平均数。英文名为,一般缩写成RMS。2.算术平均数:又称均值,是统计学中最基本、最常用的一种平均指标,分为简单算术平均…

    2022年4月29日
    158

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号