java保留小数点后7位,不够补0,去小数点存库,带小数点展示

 要求如下:

 应用区域坐标经纬度

a)     存库均按照微度,小数点后移7位,不足补0

b)     示例:

i.     前端输入 123.1234560 后端存储 1231234560

ii.     前端输入 123.1230 后端存储 1231230000

iii.     前端输入 12 后端存储 120000000

iv.     后端取库 1231234560传输给前端展示为123.1234560

v.     后端取库 1231230000传输给前端展示为123.1230000

vi.     后端取库 120000000传输给前端展示为12.0000000

实现:

package com.xdja.pki.itsca.core.region;

import org.apache.commons.lang3.StringUtils;

/**
 * 区域坐标处理
 *
 * @author wly
 */
public class PointHandle {
    /**
     * 存库 补够7位 去小数点
     * @param point
     * @return
     */
    public static String toPoint(String point) {
        int i = StringUtils.indexOf(point, ".");
        if (i == -1) {
            //没有小数点
            i = point.length() - 1;
        }
        int length = 8 - point.length() + i;
        String s = null;
        if (length > 0) {
            s = point + String.format("%1$0" + (length) + "d", 0);
            point = s.replace(".", "");
        } else {
            //length=0 已够7位
            point = point.replace(".", "");
        }
        return point;
    }

    /**
     * 展示 加小数点
     * @param point
     * @return
     */
    public static String pointTo(String point) {
        int length = point.length() - 7;
        String decimal = point.substring(length);
        String integer = point.substring(0, length);
        point = integer + "." + decimal;
        return point;
    }

    //测试
    public static void main(String[] args) {
        String a = "11";
        String b = "11.1234";
        String c = "11.1234567";
        a = toPoint(a);
        b = toPoint(b);
        c = toPoint(c);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println("------------");
        a = pointTo(a);
        b = pointTo(b);
        c = pointTo(c);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

    }
}

控制台输出:

 

整整齐齐 ok ! ! !

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值