为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?
2020年9月21日 - 网易
通过以上代码示例,我们发现,在使用BigDecimal的equals方法对1和1.0进行比较的时候,有的时候是true(当使用int、double定义BigDecimal时),有的时候是false(当使用String定义BigDecimal时)。那么,为什么会出现这样的情况呢,我们先来看下BigDecimal的equals方法。在BigDecimal的JavaDoc中其实已经解释了其中原因:Comparesthis...
详情
你以为用了 BigDecimal 后,计算结果就一定精确了?
2021年2月2日 - 网易
而对于BigDecimal(String),当我们使用newBigDecimal("0.1")创建一个BigDecimal的时候,其实创建出来的值正好就是等于0.1的。那么他的标度也就是1。但是需要注意的是,newBigDecimal("0.10000")和newBigDecimal("0.1")这两个数的标度分别是5和1,如果使用BigDecimal的equals方法比较,得到的结...
详情
领域驱动设计战术模式:值对象
2019年5月24日 - 网易
通过比较两个对象的类型和属性来决定其相等性;7.方法无副作用。由于不变性,值对象的方法一般为一个无副作用函数,这个函数表示对某个对象的操作,它只用于产生输出,不会修改对象状态。2何时使用值对象值对象是实体的状态,它描述与实体相关的概念。2.1表示描述性的、缺失身份的概念当一个概念缺乏明显的身...
详情