济菏高速数据中心代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.4 KiB

package com.ruoyi.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* @Description 桩号距离计算工具
*
* @author liuwenge
* @date 2024/1/17 14:43
*/
public class StakeMarkUtils {
/**
* @Description 计算桩号距离(公里)
*
* @author liuwenge
* @date 2024/1/17 14:45
* @param startStakeMark 开始桩号
* @param endStakeMark 结束桩号
* @return java.math.BigDecimal 距离
*/
public static BigDecimal getKilometre(String startStakeMark, String endStakeMark){
String start = startStakeMark.toLowerCase().replace("k","").replace("+",".");
String end = endStakeMark.toLowerCase().replace("k","").replace("+",".");
return new BigDecimal(end).subtract(new BigDecimal(start)).setScale(3, RoundingMode.HALF_UP);
}
/**
* @Description 计算桩号距离()
*
* @author liuwenge
* @date 2024/1/17 15:04
* @param startStakeMark 开始桩号
* @param endStakeMark 结束桩号
* @return java.math.BigDecimal 距离
*/
public static BigDecimal getMetre(String startStakeMark, String endStakeMark){
String start = startStakeMark.toLowerCase().replace("k","").replace("+",".");
String end = endStakeMark.toLowerCase().replace("k","").replace("+",".");
return new BigDecimal(end).subtract(new BigDecimal(start)).multiply(new BigDecimal("1000")).setScale(0, RoundingMode.HALF_UP);
}
}