Java编码规范-字符串与Integer的比较,BigDecimal非空参数 package com.example.core.mydemo; import java.math.BigDecimal;...g = new BigDecimal(ss); System.out.println("g="+ g); } } BigDecimal加减乘除DEMO package com.example.core.mydemo.java2...; import java.math.BigDecimal; /** * output: 保留2位小数点 * 加法=10.00 * 减法=1.00 * 乘法=24.00 * 除法=2.00...= new BigDecimal(1); BigDecimal d2 = new BigDecimal(2); BigDecimal d3 = new BigDecimal...(3); BigDecimal d4 = new BigDecimal(4); System.out.println("加法=" + d1.add(d2).add(d3)
String s) 将字符串参数转换为对应的byte基本类型。...public static int parseInt(String s) 将字符串参数转换为对应的int基本类型。...public static long parseLong(String s) 将字符串参数转换为对应的long基本类型。...格式化:按照指定的格式,从Date对象转换为String对象。 解析:按照指定的格式,从String对象转换为Date对象。...参数pattern是一个字符串,代表日期时间的自定义格式。
BigInteger 构造方法有很多,其中字符串参数的构造方法有两个: BigInteger(String val):将十进制字符串val转换为 BigInteger 对象。...BigInteger(String val, int radix):按照指定基数 radix 将字符串 val 转换为 BigInteger 对象。...BigDecimal(double val):将 double 转换为BigDecimal对象,参数val是double类型的二进制浮点值准确的十进制表示形式。...BigDecimal(String val):将字符串表示数值形式转换为 BigDecimal 对象。...); System.out.println(l); //断言请求的操作具有精确的结果,因此不需要舍入。
ApiBoot提供了FastJson驱动转换接口请求的Json字符串数据,添加该依赖后会自动格式化时间(格式:YYYY-MM-DD HH:mm:ss)、空对象转换为空字符串返回、空Number转换为0等...,还会自动装载ValueFilter接口的实现类来完成自定义的数据格式转换。... ApiBoot所提供的依赖都不需要添加版本号,具体查看ApiBoot版本依赖 相关配置 ApiBoot Http Converter通过使用SpringBoot内置的配置参数名来确定是否开启...、jackson、jsonb,当我们配置该参数为fastJson或不进行配置就会使用ApiBoot Http Converter提供的fastJson来格式化转换Json返回数据。...).doubleValue(); } } catch (Exception e) { logger.error("格式化BigDecimal
(Date date) * * String -- Date(解析) * public Date parse(String source) * * DateForamt:可以进行日期和字符串的格式化和解析...,请注意格式必须和给定的字符串格式匹配 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dd =...* * @param d * 被转换的日期对象 * @param format * 传递过来的要被转换的格式 * @return...格式化后的字符串 */ public static String dateToString(Date d, String format) { // SimpleDateFormat sdf =...* * @param s * 被解析的字符串 * @param format * 传递过来的要被转换的格式 * @return 解析后的日期对象
例如: 基本类型与字符串之间的转换 基本类型直接与””相连接即可;如:34+""String转换成对应的基本类型 除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型...:public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。...public static short parseShort(String s):将字符串参数转换为对应的short基本类型。...public static int parseInt(String s):将字符串参数转换为对应的int基本类型。...public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
假设银行提供了一些 API 接口,对参数的序列化有点特殊,不使用 JSON,而是需要我们把参数依次拼在一起构成一个大字符串。...因为每一种参数都有固定长度,未达到长度时需要做填充处理: 字符串类型的参数不满长度部分需要以下划线右填充,也就是字符串内容靠左; 数字类型的参数不满长度部分以 0 左填充,也就是实际数字靠右; 货币类型的表示需要把金额向下舍入...理论上,如果我们的核心翻译过程(也就是把注解和接口 API 序列化为请求需要的字符串的过程)没问题,只要注解和表格一致,API 请求的翻译就不会有任何问题。...第 12~38 行代码,实现了反射获取注解的值,然后根据 BankAPIField 拿到的参数类型,按照三种标准进行格式化,将所有参数的格式化逻辑集中在了这一处。...第 41~48 行代码,实现了参数加签和请求调用。
StringBuilder类: append(任意类型数据):字符串拼接。 reverse():字符串反转。 toString():将StringBuilder转换为String。...以下是其构造方法和常用操作: BigInteger(String val):参数必须是数字形式的字符串。 BigInteger add(BigInteger val):返回两数之和。...以下是其构造方法和常用操作: BigDecimal(String val):参数必须是数字形式的字符串。...String format(Date date):将Date对象按照指定的格式转换为字符串。 Date parse(String source):将符合日期格式的字符串转换为Date对象。...TemporalAccessor parse(CharSequence text):将符合规则的字符串转换为日期对象。
日期YYYY格式设置的坑 日常开发,经常需要对日期格式化,但是呢,年份设置为YYYY大写的时候,是有坑的哦。...正确姿势是使用yyyy格式。 ?...表示和计算浮点数,必须使用「字符串的构造方法」来初始化 BigDecimal,正例如下: public class DoubleTest { public static void main(String...「编译器会把 Integer a = 127 转换为 Integer.valueOf(127)。」 我们看下源码。...❞ 把tomcat的工作线程设置为1 server.tomcat.max-threads=1 用户1,请求过来,会有以下结果,符合预期: ? 用户2请求过来,会有以下结果,「不符合预期」: ?
"null" : obj.toString(); } 注意:这里返回了一个 "null" 的字符串,而不是 null。这两个是有很大区别的。当进行非空判断的时候,返回的是 true。...此方法的适用性就显得比较窄,因为是 String 类型的参数没有任何限定,当在传入一些比如 20.0、20L、30d、40f 这类数据的情况下会抛出异常。...进行转换!...(); } 表面上看起来没有问题,但是一旦接受者对结果进行操作,就会出现异常: List resultList = service.get("param"); resultList.add...java.util.AbstractList.add(AbstractList.java:108) 主要问题在于 Collections.emptyList() 并非我们平时看到的 List,此List 不支持
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。 其中涉及到参数类型为double的构造方法,会出现上述的问题,使用时需特别留意。...第四:三种字符串输出的坑 当使用BigDecimal之后,需要转换成String类型,你是如何操作的?直接toString?...这里我们需要了解BigDecimal转换字符串的三个方法 toPlainString():不使用任何科学计数法; toString():在必要的时候使用科学计数法; toEngineeringString...类似于科学计数法,只不过指数的幂都是3的倍数,这样方便工程上的应用,因为在很多单位转换的时候都是10^3; 三种方法展示结果示例如下: 基本结论:根据数据结果展示格式不同,采用不同的字符串输出方法,通常使用比较多的方法为...另外,NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。
用来对超过16位有效位的数进行精确的运算 初始化: BigDecimal(int) 创建一个具有参数所指定整数值的对象 BigDecimal(double) 创建一个具有参数所指定双精度值的对象...BigDecimal(long) 创建一个具有参数所指定长整数值的对象 BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象 例如: BigDecimal...(BigDecimal) BigDecimal对象中的值相除,返回BigDecimal对象 toString() 将BigDecimal对象中的值转换成字符串 doubleValue()...将BigDecimal对象中的值转换成双精度数 floatValue() 将BigDecimal对象中的值转换成单精度数 longValue() 将BigDecimal对象中的值转换成长整数...set 设置年月日时分秒 get设置年月日时分秒 add 添加年月日 ?
BigDecimal(long) 创建一个具有参数所指定长整数值的对象 BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象 2.2、使用问题分析 使用示例:...对象中的值相除,返回BigDecimal对象 toString() 将BigDecimal对象中的值转换成字符串 doubleValue() 将BigDecimal对象中的值转换成双精度数 floatValue...格式化 由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。...首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比...* 2.传入的参数等于0,则直接返回字符串"0.00" * 3.大于1的小数,直接格式化返回字符串 * @param obj传入的小数 * @return */
参数用作状态码;根据惯例,非0的状态码表示异常终止。 ...即:针对日期/时间进行格式化和针对字符串(文本)进行解析的类,但是它是抽象类,所以使用其子类SimpleDateFormat。...,解析的格式必须和给定的字符串的格式匹配。...传递过来的要被转换的格式 23 * @return 格式化后的字符串 24 */ 25 public static String dateToString(Date d, String...传递过来的要被转换的格式 38 * @return 解析后的日期对象 39 * @throws ParseException 40 */ 41 public static
BigDecimal(long) 创建一个具有参数所指定长整数值的对象 BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象 2.2、使用问题分析 使用示例: BigDecimal...)」 BigDecimal对象中的值相除,返回BigDecimal对象 「toString()」 将BigDecimal对象中的值转换成字符串 「doubleValue()」 将BigDecimal对象中的值转换成双精度数...对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。...首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比...* 2.传入的参数等于0,则直接返回字符串"0.00" * 3.大于1的小数,直接格式化返回字符串 * @param obj传入的小数 * @return
BigDecimal(double) 创建一个具有参数所指定双精度值的对象 BigDecimal(long) 创建一个具有参数所指定长整数值的对象 BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象...,返回BigDecimal对象 divide(BigDecimal) BigDecimal对象中的值相除,返回BigDecimal对象 toString() 将BigDecimal对象中的值转换成字符串...格式化 由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。...首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比...* 2.传入的参数等于0,则直接返回字符串"0.00" * 3.大于1的小数,直接格式化返回字符串 * @param obj传入的小数 * @return */
在一篇博文评论中解释如下: 应该是客户端代码里将查询的数值定义成了java.math.BigDecimal,而ES不支持这个类型。...解决方案一:转变成其他ES支持的数据类型 我使用的是6.5.4版本的Elasticsearch,该版本尚不支持BigDecimal或者BigInteger的数据类型,所以在index到Elasticsearch...之前,需要转换成其他数据类型,这里要注意不要数据溢出了: BigDecimal要转变成Double类型 BigInteger要转变成Long类型 解决方案二:使用更高版本的ES 我在看6.7.1版本的Elasticsearch...,后者是毫秒值格式。...这里由于搜索日期值使用的是2021-06-15 00:00:00这种格式,无法被es的日期解析器解析成上述的两种格式,因此抛出异常。
领取专属 10元无门槛券
手把手带您无忧上云