From 361ab1df48d720ec88cc7a060e20b4d17c515944 Mon Sep 17 00:00:00 2001 From: HYL123698745 <1252347619@qq.com> Date: Tue, 6 Jul 2021 20:22:41 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=80=91=EF=BC=9A=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ikvStockChart/build.gradle | 2 +- ikvStockChart/src/main/config.json | 5 ----- .../ikvstockchart/drawing/CandleDrawing.java | 17 ++++++++-------- .../drawing/EmptyDataDrawing.java | 3 +-- .../ikvstockchart/entry/EntrySet.java | 20 +++++++++---------- .../ikvstockchart/utils/NumCalcUtil.java | 3 ++- 6 files changed, 21 insertions(+), 29 deletions(-) diff --git a/ikvStockChart/build.gradle b/ikvStockChart/build.gradle index 722f853..aff946d 100644 --- a/ikvStockChart/build.gradle +++ b/ikvStockChart/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/ikvStockChart/src/main/config.json b/ikvStockChart/src/main/config.json index 9ea2606..551885d 100644 --- a/ikvStockChart/src/main/config.json +++ b/ikvStockChart/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" } }, "deviceConfig": {}, diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java index d81d9dd..14b2791 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java @@ -24,7 +24,6 @@ import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; import com.wordplat.ikvstockchart.entry.SizeColor; import com.wordplat.ikvstockchart.render.AbstractRender; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; import com.wordplat.ikvstockchart.utils.StringUtils; import ohos.agp.render.Canvas; import ohos.agp.render.Paint; @@ -150,13 +149,13 @@ public class CandleDrawing implements IDrawing { canvas.drawText(extremumPaint, decimalFormatter.format(entry.getLow()) + " →", candleLineBuffer[6], - NumCalcUtil.add(candleLineBuffer[7], 20)); + candleLineBuffer[7] + 20); } else { extremumPaint.setTextAlign(TextAlignment.LEFT); canvas.drawText(extremumPaint, "← " + decimalFormatter.format(entry.getLow()), candleLineBuffer[6], - NumCalcUtil.add(candleLineBuffer[7], 20)); + candleLineBuffer[7] + 20); } } if (iindex == entrySet.getMaxYIndex()) { @@ -165,21 +164,21 @@ public class CandleDrawing implements IDrawing { canvas.drawText(extremumPaint, decimalFormatter.format(entry.getHigh()) + " →", candleLineBuffer[0], - NumCalcUtil.subtract(candleLineBuffer[1], 5)); + candleLineBuffer[1] - 5); } else { extremumPaint.setTextAlign(TextAlignment.LEFT); canvas.drawText(extremumPaint, "← " + decimalFormatter.format(entry.getHigh()), candleLineBuffer[0], - NumCalcUtil.subtract(candleLineBuffer[1], 5)); + candleLineBuffer[1] - 5); } } /** * 绘制 蜡烛图的矩形 */ - candleRectBuffer[0] = NumCalcUtil.add(iindex, candleSpace); - candleRectBuffer[2] = NumCalcUtil.add(iindex + 1, candleSpace); + candleRectBuffer[0] = iindex + candleSpace; + candleRectBuffer[2] = iindex + 1 + candleSpace; if (entry.getOpen() > entry.getClose()) { candleRectBuffer[1] = entry.getOpen(); @@ -199,8 +198,8 @@ public class CandleDrawing implements IDrawing { * 涨停、跌停、或不涨不跌的一字板 */ - if (Math.abs(NumCalcUtil.subtract(candleRectBuffer[1], candleRectBuffer[3])) < 1.f) { - canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], NumCalcUtil.add(candleRectBuffer[3], 2), candlePaint); + if (Math.abs(candleRectBuffer[1] - candleRectBuffer[3]) < 1.f) { + canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], candleRectBuffer[3] + 2, candlePaint); } else { canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], candleRectBuffer[3], candlePaint); } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java index bf2fda1..f109c56 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java @@ -21,7 +21,6 @@ package com.wordplat.ikvstockchart.drawing; import com.wordplat.ikvstockchart.entry.SizeColor; import com.wordplat.ikvstockchart.render.AbstractRender; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; import com.wordplat.ikvstockchart.utils.StringUtils; import ohos.agp.render.Canvas; import ohos.agp.render.Paint; @@ -90,7 +89,7 @@ public class EmptyDataDrawing implements IDrawing { canvas.drawText(textPaint, drawText, contentRect.getWidth() / 2, - NumCalcUtil.divide((float) ((double)contentRect.top + (double)contentRect.bottom - (double)fontMetrics.top - (double)fontMetrics.bottom), 2)); + (contentRect.top + contentRect.bottom - fontMetrics.top - fontMetrics.bottom) / 2); } } } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java index 2b44f00..803c23d 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java @@ -18,8 +18,6 @@ package com.wordplat.ikvstockchart.entry; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; - import java.util.ArrayList; import java.util.List; @@ -142,7 +140,7 @@ public class EntrySet { * @return float */ public float getDeltaY() { - return NumCalcUtil.subtract(maxY , minY); + return maxY - minY; } /** @@ -337,28 +335,28 @@ public class EntrySet { volumeMa5 -= (double)entries.get(i - 5).getVolume(); entry.setVolumeMa5(volumeMa5 / 5f); } else { - entry.setMa5(NumCalcUtil.divide(ma5 , (i + 1f))); + entry.setMa5(ma5 / (i + 1f)); - entry.setVolumeMa5(NumCalcUtil.divide(volumeMa5 , (float) (i + (double)1f))); + entry.setVolumeMa5(volumeMa5 / (i + 1f)); } if (i >= 10) { ma10 -= (double)entries.get(i - 10).getClose(); - entry.setMa10(NumCalcUtil.divide(ma10 , 10f)); + entry.setMa10(ma10 / 10f); volumeMa10 -= (double)entries.get(i - 10).getVolume(); - entry.setVolumeMa10(NumCalcUtil.divide(volumeMa10 , 5f)); + entry.setVolumeMa10(volumeMa10 / 5f); } else { - entry.setMa10(NumCalcUtil.divide(ma10 , (float) (i + (double)1f))); + entry.setMa10(ma10 / (i + 1f)); - entry.setVolumeMa10(NumCalcUtil.divide(volumeMa10 , (float) (i + (double)1f))); + entry.setVolumeMa10(volumeMa10 / (i + 1f)); } if (i >= 20) { ma20 -= (double)entries.get(i - 20).getClose(); - entry.setMa20(NumCalcUtil.divide(ma20 , 20f)); + entry.setMa20(ma20 / 20f); } else { - entry.setMa20(NumCalcUtil.divide(ma20 , (float) (i + (double)1f))); + entry.setMa20(ma20 / (i + 1f)); } } } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java index 303f2be..f0a8d7a 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java @@ -16,6 +16,7 @@ package com.wordplat.ikvstockchart.utils; import java.math.BigDecimal; +import java.math.MathContext; /** * 浮点数计算工具类 @@ -67,6 +68,6 @@ public class NumCalcUtil { * @return 结果 */ public static float divide(float num1, float num2) { - return new BigDecimal(num1).divide(new BigDecimal(num2)).floatValue(); + return new BigDecimal(num1, MathContext.UNLIMITED).divide(new BigDecimal(num2, MathContext.DECIMAL32)).floatValue(); } } -- Gitee