- 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);
- 2024-09-26BigDecimal 详解与实战
BigDecimal详解与实战JavaBigDecimal完整指南引言什么是`BigDecimal`?创建`BigDecimal`对象常用方法示例代码注意事项实际运用金融计算示例代码:商业应用示例代码:科学计算示例代码:数据汇总和统计示例代码:为什么选择`BigDecimal`?JavaBigDecimal完整指南
- 2024-09-25Java BigDecimal 详解
目录一、BigDecimal简介二、常用方法A、BigDecimal常用构造方法B、BigDecimal常用方法二、代码实现A、加减乘除1.创建两个BigDecimal对象2.BigDecimal相加3.BigDecimal相减4.BigDecimal相乘5.BigDecimal相除B、转换1.定义一个数值2.转换3.java.math.BigDeci
- 2024-09-23今日总结
浮点数表示Java中的浮点数(float和double)是近似值,并不能精确表示所有小数。例如:publicclassPrecisionLoss{publicstaticvoidmain(String[]args){doublea=0.1;doubleb=0.2;doublesum=a+b;//期望结果是0.3System.out.println("Sum:"+sum);//
- 2024-09-22javase笔记4----常用类型
常用类型包装类简介java语言是面向对象的语言,但是其中的八大基本数据类型不符合面向对象的特征。因此java为了弥补这样的缺点,为这八种基本数据类型专门设计了八种符合面向对象特征的的类型,这八种具有面向对象特征的类型,统称为包装类。包装类,就是在类的内部,维护了一个基本
- 2024-09-19章13——包装类——System类
System类//1.exit(0),0表示正常状态//退出程序System.exit(0);//2.arraycopyint[]src={1,2,3};int[]dest=newint[3];//此时内容为默认的:0,0,0//参数中,两个0为startingposition,3为lengthSystem
- 2024-09-14java实际开发——涉及金额时使用的数据类型BigDecimal
目录首先说结论,使用BigDecimal类。为什么不用其它的类型?(比如int、long、float、double)1、整型:2、浮点型:BigDecimal类基本数据类型与BigDecimal使用时的差别:1、创建2、+-*/3、比较标度(Scale)舍入模式首先说结论,使用BigDecimal类。为什么不用其它的类型?(比
- 2024-09-13Java 金额计算公共方法
publicclassMathUtils{privatestaticfinalintDEF_DIV_SCALE=32;/***转为BigDecimal**@paramobj*/publicstaticBigDecimaltoBigDecimal(Objectobj){Stringstr=String.valueOf(obj);returnstrin
- 2024-09-13BigDecimal
加减乘除计算首先对bigdecimal的初始化BigDecimalnum1=newBigDecimal(0.005);BigDecimalnum2=newBigDecimal(1000000);BigDecimalnum3=newBigDecimal(-1000000);//尽量用字符串的形式初始化BigDecimalnum12=newBi