N个Utils(处理数字和字符串)

1,数字

一: BigDecimal使用,可以兼容小数
public class AmountCalculated {
   private static final DecimalFormat df = new DecimalFormat("#.##");

   public static double add(double a, double b) {
      double value = new BigDecimal(a).add(new BigDecimal(b)).doubleValue();
      return Double.valueOf(df.format(value));
   }

   public static double subtract(double a, double b) {
      double value = new BigDecimal(a).subtract(new BigDecimal(b)).doubleValue();
      return Double.valueOf(df.format(value));
   }

   public static double multiply(double a, double b) {
      double value = new BigDecimal(a).multiply(new BigDecimal(b)).doubleValue();
      return Double.valueOf(df.format(value));
   }

   public static double divide(double a, double b) {
      double value = new BigDecimal(a).divide(new BigDecimal(b), 2, RoundingMode.DOWN).doubleValue();
      return Double.valueOf(df.format(value));
   }
}

二: 还有一种方案,通常用于支付,则用long类型存数字,把小数乘100到分的单位存储,就消除了小数的存在

2,字符串

String (不可变,变则新建,慢)

StringBuilder (字符串变量,快,线程不安全)

StringBuffer (字符串变量,慢,线程安全)

List<String> labelContent = new ArrayList<String>();
labelContent.add(new StringBuilder().append("金蝶应缴订单")
      .append("-")
      .append("楼栋信息")
      .toString());
StringBuilder content = new StringBuilder();
content.append("商品订单退单申请提醒:").append("\r\n");
content.append("> 订单编码:").append(goodsOrders.get(0).getOrderCode()).append("\r\n");
content.append("> 下单店铺:").append(smallGoodsSpaceMapper.selectGoodsSpace(SmallGoodsSpace.builder().spaceId(goodsOrders.get(0).getSpaceId()).build()).get(0).getSpaceName()).append("\r\n");
content.append("> 申请时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(executeDate)).append("\r\n");

3,时间

如果在时间上要超过Linux时间的,或者服务器时区不一样的就建议选择 datetime。

如果是想要使用自动插入时间或者自动更新时间功能的,可以使用timestamp。

datetime ->    '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'  8字节

timestamp -> '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'  4字节

也就是说,对于timestamp来说,如果储存时的时区和检索时的时区不一样,那么拿出来的数据也不一样。对于datetime来说,存什么拿到的就是什么。

如果只是想表示年、日期、时间的还可以使用 year、 date、 time,它们分别占据 1、3、3 字节,而datetime就是它们的集合。

4,地址(经纬度)

经纬的应用utils

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值