- 2024-11-19[Java] 浮点数的精度丢失问题与精度控制方法
1需求描述场景1:两个整型相除,如何保证运算结果为浮点数?如何控制运算结果的精度(小数位数)?场景2:针对一个浮点数,如何控制其精度(小数位数)?2试验场景:两整型数相除,控制运算结果、浮点数的精度Longnumber1=110600L;intnumber2=999;intscale=2;//精度n(保留n位小数)/
- 2024-11-18MatchuUtils
packagecom.dream.model;importjava.math.BigDecimal;importjava.time.LocalDateTime;publicclassMatch{privateLocalDateTimematchDateTime;privateStringleagueMatch;privateStringhomeTeam;privateStringawayTeam;privateStringwin;
- 2024-11-18Swagger 3.0 & MybatisPlus 主键BigDecimal 使用过程问题
PS:本来用的是2.x的,但是因为换了后端框架,导致版本不适配,于是调整到3.0<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>&
- 2024-11-16工作学习笔记(十)Java 中 “<” 运算符不能应用于BigDecimal和double
一、问题描述在Java编程过程中,尝试使用“<”运算符对java.math.BigDecimal和double类型的数据进行比较时,出现了编译错误:“Theoperator<isundefinedfortheargumenttype(s)java.math.BigDecimal,double”。二、问题分析Java中的基本数据类型(如int、double等)
- 2024-11-15BigDecimal
不精确的情况:publicclassBigDecimalDemo1{publicstaticvoidmain(String[]args){System.out.println(0.09+0.01);//0.09999999999999999System.out.println(0.216-0.1);//0.11599999999999999System.out.println(0.226*0.
- 2024-11-13BigDecimal的基本用法
初始化BigDecimalamount=newBigDecimal("15");加减乘除publicstaticvoidmain(String[]args){BigDecimalamount=newBigDecimal("15");BigDecimalamount2=newBigDecimal("3");//加BigDecima
- 2024-11-13Java灵魂拷问13个为什么,你都会哪些?
大家好,我是V哥。今天看了阿里云开发者社区关于Java的灵魂拷问,一线大厂在用Java时,都会考虑哪些问题呢,对于工作多年,又没有大厂经历的小伙伴不妨看看,V哥总结的这13个为什么,你都会哪些?先赞后看,绝不摆烂。1.为什么禁止使用BigDecimal的equals方法做等值比较?BigDecimal
- 2024-11-11Java灵魂拷问13个为什么,你都会哪些?
大家好,我是V哥。今天看了阿里云开发者社区关于Java的灵魂拷问,一线大厂在用Java时,都会考虑哪些问题呢,对于工作多年,又没有大厂经历的小伙伴不妨看看,V哥总结的这13个为什么,你都会哪些?先赞后看,绝不摆烂。V哥推荐:2024最适合入门的JAVA课程1.为什么禁止使用BigDe
- 2024-10-29java数据类型四舍五入保留小数位
在java处理int、float、double、long等整形或者小数时,如果需要转为Bigdecimal时,一定要先转为字符串,然后再转为Bigdecimal。否则可能出现精度丢失的问题。在对float,double四舍五入时,不要直接只用以下方法,如果用了,可以试下2000.225保留两位小数。不管用java还是python计算出来都会
- 2024-10-28某一个时间点加天数 跳过双休日 和节假日
0、创建节假日表SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructureforjsh_holiday------------------------------DROPTABLEIFEXISTS`jsh_holiday`;CREATETABLE`jsh_holiday`(`id`bigintNOTNULLAUTO_I
- 2024-10-26BigDecimal使用
常见方法我们在使用BigDecimal时,为了防止精度丢失,推荐使用它的BigDecimal(Stringval)构造方法或者BigDecimal.valueOf(doubleval)静态方法来创建对象。《阿里巴巴Java开发手册》对这部分内容也有提到,如下图所示。加减乘除add方法用于将两个BigDecimal对象相加,subt
- 2024-10-23JVM
JVM构成及相关开发注意一、前言JVM也就是JavaVirtualMachine,即Java虚拟机。我们常用过的虚拟机比如VMware,属于系统虚拟机,完全对物理计算机的仿真,提供一个可运行完整操作系统的平台。而Java虚拟机则为程序虚拟机,专门设计为执行某些计算机程序而实现,在Java虚拟机内执行的是J
- 2024-10-21【设计模式】一文搞懂策略模式
目录什么是策略模式策略模式结构策略模式的优点和缺点项目实战实际场景代码实现(策略模式+工厂模式)优惠券折扣金额的策略接口优惠金额策略打折直减满减工厂类环境类总结什么是策略模式策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使
- 2024-10-21Java金额计算
importjava.math.BigDecimal;importjava.text.NumberFormat;/***由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入。*/publicclassCurrencyUtil{/***默认除法运算精度*/privatesta
- 2024-10-18BigDecimalUtil工具类 Java 多种类型(Double, String, Integer)转换成BigDecimal 进行加减乘除运算
工具说明没有什么太复杂的代码。先是通过方法名称确定返回值的类型(BigDecimal、Double、String)。然后大量的重载方法,用“穷举法”把BigDecimal、Double、String、Integer四种类型进行各种形式的两两组合,进行加减乘除运算。运算时非BigDecimal类型的参数会转化成BigDecim
- 2024-10-12Non-terminating decimal expansion; no exact representable decimal result.
使用Bigdecimal做除法publicstaticvoidmain(String[]args){//1、不设置保留位数System.out.println(BigDecimal.valueOf(2).divide(BigDecimal.valueOf(3)));//2、divide以后再设置保留位数System.out.println(BigDecimal.valueOf(
- 2024-10-11list过滤
importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.List;importjava.util.stream.Collectors;publicclassTest{@org.junit.Testpublicvoidtest1(){List<Order>orderList=newArrayList<>();
- 2024-10-11解决double类型计算时丢失精度问题
问题:double类型在进行计算时可能会丢失精度doublev1=0.2; doublev2=0.3; doublev3=v2-v1;预期:v3=0.1实际:v3=0.09999999999999998解决:用BigDecimal类型包装一下数据然后计算(需要先把数据转为String类型!)不转为String类型:doublev1=0.2; doublev2=0.3; d
- 2024-10-10BigDecimal 常用方法
文章目录BigDecimal常用方法1.初始化BigDecimal2.创建BigDecimal对象3.BigDecimal类中定义好的常量4.BigDecimal值之间的转换5.取当前值的相反数、绝对值、幂函数、保留数值的精度6.BigDecimal之间的运算:加减乘除方法7.两数相除保留精度BigDecimal常用方法1.初
- 2024-10-05设计模式-建造者模式
什么是建造者模式?建造者模式是通过将多个简单对象通过一步步的组装构建出一个复杂对象的过程。简单模拟场景:装修公司的套餐服务,豪华、简约风格。比如对于吊顶和地板,有一级二级吊顶,一级二级地板等。按不同的套餐价格选取不同的组合。物料接口:publicinterfaceMatter{
- 2024-10-01【常用API】Math,System,Runtime,BigDecimal
Math代表数学,是一个工具类,提供的都是对数据进行操作的一些静态方法。Math类提供的常见方法方法名说明publicstaticintabs(inta)获取参数的绝对值publicstaticdoubleceil(doublea)向上取整publicstaticdoublefloor(doublea)向下取整publicstaticintround(
- 2024-09-289.27
今天学习了Java中数值变量的值通过学习知道了Java中的浮点数并不为我们所想的准确值点击查看代码packageDouble;publicclassDoubleTest{publicstaticvoidmain(Stringargs[]){System.out.println("0.05+0.01="+(0.05+0.01));System
- 2024-09-28Java课后习题总结
1,第一个问题是关于枚举迭代的:privateenumMyEnum{ONE,TWO,THREE}publicstaticvoidmain(String[]args){for(MyEnumvalue:MyEnum.values()){System.out.println(value);}}这段代码的运行结果是遍历了数组包含ONE、TWO和THREE三个元素,并逐个输出枚举常量的值,这
- 2024-09-26Java基础八股----持续更新
文章目录声明Java与C++的区别JRE和JDK的区别为什么说Java程序一次编译,处处运行?基本数据类型有哪些?占用的字节?Java中有了基本类型为什么还需要包装类?包装类的缓存机制什么是自动装箱和拆箱?原理是什么?哪些场景会用到装箱和拆箱为什么浮点数运算的时候会有精度丢失的风险?为
- 2024-09-26Java动手动脑及课后实验
一、仔细阅读示例:EnumTest.java,运行它,分析运行结果?你能得到什么结论?你掌握了枚举类型的基本用法了吗?publicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s==t);