From 0118ba9749c850ba32b789011883c353a735f1fb Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 22 四月 2025 19:25:33 +0800 Subject: [PATCH] 2025年04月22日19:25:13 优化功率单位转化 --- app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 79 ++++++++++++++++++--------------------- 1 files changed, 36 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java index 4720942..a935e16 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java @@ -62,14 +62,15 @@ /** - * @param value 鍊� + * @param value 鍊� + * @param unitType 闇�瑕佽浆鐨勫崟浣嶏紙kW锛宬Wh锛� * @return 瀛楃涓插�艰繑鍥� */ - public static String convertDoubleValue(String value) { + public static String convertDoubleValue(String value, String unitType) { if (TextUtils.isEmpty(value)) { return UnitType.noValue; } - return divideByOneThousandAndFormat(value).toString(); + return divideByOneThousandAndFormat(value,unitType).toString(); } /** @@ -122,10 +123,10 @@ * @param value 鍊� * @return BigDecimal */ - public static BigDecimal divideByOneThousandAndFormat(String value) { + public static BigDecimal divideByOneThousandAndFormat(String value, String unitType) { try { double doubleValue = Double.parseDouble(value); - int mDoubleValue = doubleValue(value); + long mDoubleValue = doubleValue(value,unitType); if (mDoubleValue == 0) { return getBigDecimal(value); } else { @@ -143,17 +144,29 @@ * * @param value 鍊� */ - public static int doubleValue(String value) { + public static long doubleValue(String value, String unitType) { try { double doubleValue = Double.parseDouble(value); - if (doubleValue > 1000 && doubleValue < 1000 * 1000) { - return 1000; - } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { - return 1000 * 1000; - } else if (doubleValue > 1000 * 1000 * 1000) { - return 1000 * 1000 * 1000; + if (unitType.equals(UnitType.kW)) { + if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + return 1000 ; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return 1000 * 1000 ; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return 1000L * 1000 * 1000 ; + } else { + return 1000; + } } else { - return 0; + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { + return 1000; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return 1000 * 1000; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return 1000 * 1000 * 1000; + } else { + return 0; + } } } catch (Exception e) { return 0; @@ -161,29 +174,7 @@ } - /** - * 杞崲鍗曚綅 - * - * @param value 鍊� - * @param unitType 琛ㄧず鏄崟浣嶏紙鍔熺巼锛岀數閲忥級 - */ - public static String convertUnit(String value, String unitType) { - try { - double doubleValue = Double.parseDouble(value); - if (doubleValue > 1000 && doubleValue < 1000 * 1000) { - return unitType.equals(UnitType.kW) ? UnitType.mW : UnitType.mWh; - } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { - return unitType.equals(UnitType.kW) ? UnitType.gW : UnitType.gWh; - } else if (doubleValue > 1000 * 1000 * 1000) { - return unitType.equals(UnitType.kW) ? UnitType.tW : UnitType.tWh; - } else { - return unitType.equals(UnitType.kW) ? UnitType.kW : UnitType.kWh; - } - } catch (Exception e) { - return unitType.equals(UnitType.kW) ? UnitType.kW : UnitType.kWh; - } - } /** * 杞崲鐢甸噺(kWh)鍗曚綅 @@ -193,11 +184,11 @@ public static String convertKWHUnit(String value) { try { double doubleValue = Double.parseDouble(value); - if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { return UnitType.mWh; - } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { return UnitType.gWh; - } else if (doubleValue > 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 * 1000) { return UnitType.tWh; } else { return UnitType.kWh; @@ -217,10 +208,12 @@ try { double doubleValue = Double.parseDouble(value); if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + return UnitType.kW; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { return UnitType.mW; - } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 * 1000&&doubleValue < 1000 * 1000 * 1000*1000L) { return UnitType.gW; - } else if (doubleValue > 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 * 1000*1000L) { return UnitType.tW; } else { return UnitType.kW; @@ -239,11 +232,11 @@ public static String convertKWPUnit(String value) { try { double doubleValue = Double.parseDouble(value); - if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { return UnitType.MWp; - } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { return UnitType.GWp; - } else if (doubleValue > 1000 * 1000 * 1000) { + } else if (doubleValue >= 1000 * 1000 * 1000) { return UnitType.TWp; } else { return UnitType.kWp; -- Gitblit v1.8.0