package dikuai;
|
|
import java.util.Locale;
|
|
/**
|
* 割草宽度计算工具类
|
* 用于根据割刀宽度计算实际割草宽度
|
*/
|
public class Gecaokuanjisuan {
|
|
/**
|
* 根据割刀宽度计算割草宽度
|
*
|
* 计算方法:割草宽度 = 割刀宽度 × 0.85(85%覆盖率)
|
* 这是考虑到实际作业时,相邻割草路径之间会有一定的重叠,以确保全覆盖
|
*
|
* @param bladeWidthMeters 割刀宽度,单位:米
|
* @return 割草宽度,单位:厘米,保留两位小数。如果输入值无效(小于等于0),返回0.0
|
*
|
* 使用示例:
|
* double bladeWidth = 0.50; // 割刀宽度0.5米
|
* double mowingWidth = Gecaokuanjisuan.calculateMowingWidth(bladeWidth);
|
* // 结果:mowingWidth = 42.50(厘米)
|
*/
|
public static double calculateMowingWidth(double bladeWidthMeters) {
|
if (bladeWidthMeters <= 0) {
|
return 0.0;
|
}
|
|
// 计算割草宽度:割草宽度 = 割刀宽度 * 0.85(85%覆盖率)
|
double mowingWidthMeters = bladeWidthMeters * 0.85;
|
double mowingWidthCm = mowingWidthMeters * 100.0;
|
|
// 保留两位小数(四舍五入)
|
return Math.round(mowingWidthCm * 100.0) / 100.0;
|
}
|
|
/**
|
* 根据割刀宽度计算割草宽度(返回格式化字符串)
|
*
|
* @param bladeWidthMeters 割刀宽度,单位:米
|
* @return 割草宽度字符串,单位:厘米,保留两位小数。如果输入值无效,返回空字符串
|
*
|
* 使用示例:
|
* double bladeWidth = 0.50; // 割刀宽度0.5米
|
* String mowingWidthStr = Gecaokuanjisuan.calculateMowingWidthString(bladeWidth);
|
* // 结果:mowingWidthStr = "42.50"
|
*/
|
public static String calculateMowingWidthString(double bladeWidthMeters) {
|
double mowingWidthCm = calculateMowingWidth(bladeWidthMeters);
|
if (mowingWidthCm <= 0) {
|
return "";
|
}
|
return String.format(Locale.US, "%.2f", mowingWidthCm);
|
}
|
|
/**
|
* 根据割刀宽度字符串计算割草宽度(返回格式化字符串)
|
*
|
* @param bladeWidthStr 割刀宽度字符串,单位:米
|
* @return 割草宽度字符串,单位:厘米,保留两位小数。如果输入值无效或无法解析,返回空字符串
|
*
|
* 使用示例:
|
* String bladeWidthStr = "0.50"; // 割刀宽度0.5米
|
* String mowingWidthStr = Gecaokuanjisuan.calculateMowingWidthFromString(bladeWidthStr);
|
* // 结果:mowingWidthStr = "42.50"
|
*/
|
public static String calculateMowingWidthFromString(String bladeWidthStr) {
|
if (bladeWidthStr == null || bladeWidthStr.trim().isEmpty()) {
|
return "";
|
}
|
|
try {
|
double bladeWidthMeters = Double.parseDouble(bladeWidthStr.trim());
|
return calculateMowingWidthString(bladeWidthMeters);
|
} catch (NumberFormatException e) {
|
return "";
|
}
|
}
|
}
|