引言
前两天测试发现一个Bug,告诉我说他明明只修改了订单详情中商品的数量,为什么提示说订单中商品单价不能修改(后台限制了特殊单子的单价不能修改),但是他明明没有修改商品的单价,这就很奇怪了。我看了下入参,修改接口传的该商品的单价为price=222,数据库中该商品的单价为222.000000。该字段为BigDecimal类型,除了精度不一样,值是相等的,而后台校验相等用的是equals。而网上查资料BigDecimal用的比较多的是compareTo方法。
2024年07月15日
前两天测试发现一个Bug,告诉我说他明明只修改了订单详情中商品的数量,为什么提示说订单中商品单价不能修改(后台限制了特殊单子的单价不能修改),但是他明明没有修改商品的单价,这就很奇怪了。我看了下入参,修改接口传的该商品的单价为price=222,数据库中该商品的单价为222.000000。该字段为BigDecimal类型,除了精度不一样,值是相等的,而后台校验相等用的是equals。而网上查资料BigDecimal用的比较多的是compareTo方法。
2024年07月15日
无论这一年我们遇到了什么困难或者是喜事,在此时此刻,个人觉得都应该反思或者回味一下这些事情,对于好事,我们欣慰开心;坏事那我们能做到的就是极力避免它们再次发生,就如同接下来笔者要介绍的整个熟悉而陌生的名称“BUG”,接下来我主要会为大家介绍一下,发生在2022年这一年中的笔者在开发过程中所遇到的“bug”和“坑”。
2024年07月15日
我们都知道,mybatis为我们隐藏了很多操作数据库的代码,如在预处理语句PreparedStatement中设置一个参数,或是在执行完SQL语句后从结果集中取出数据。而这两个过程都需要合适的数据类型处理器来帮我们对数据进行正确的类型转换,在mybatis中又是如何处理的呢?如何自定义类型处理呢?
来看看typeHandlers怎么配置
2024年07月15日
public class BigDecimalDemo {
public static void main(String [] args) {
BigDecimal decimal1 = new BigDecimal("222");
BigDecimal decimal2 = new BigDecimal("222.000000");
System.out.println(decimal1.equals(decimal2));
System.out.println(decimal1.compareTo(decimal2));
}
}
2024年07月15日
转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换
类似于 int i=1; double s=i+1; 这种低位类型转换的这里就不在做说明
2024年07月15日
哈希表是一种键值映射的数据结构。哈希表中,数据以数组格式存储,其中每个数据值都有自己唯一的索引值,索引值通过哈希表的哈希函数计算得到。
2024年07月15日
java.math包中提供的API类BigDecimal,对超过16位有效位的数进行精确的运算。BigDecimal.ROUND_UP,进位制:不管保留数字后面是大是小(0除外)都会进1。
2024年07月15日
BigDecimal
精度:ROUND_HALF_UP=4 四舍五入 ROUND_UP=0都会进位
bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP)
2024年07月15日
在Java编程中,对于精确数值的处理,我们常常会使用到BigDecimal类。然而,如果不深入了解其特性,很容易在实际应用中掉入陷阱。本文将详细介绍BigDecimal的四大坑,帮助大家更好地掌握这个类,避免在实际开发中出现错误。