From 6bf8e261d0918d618342c2c8f09ed2623e92da14 Mon Sep 17 00:00:00 2001 From: CarmJos Date: Thu, 6 Jan 2022 00:00:38 +0800 Subject: [PATCH] =?UTF-8?q?[v1.1.8]=20[F]=20=E4=BF=AE=E5=A4=8D=E5=B0=8F?= =?UTF-8?q?=E6=95=B0=E7=B2=BE=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/EconomyManager.java | 9 ++++++--- src/test/java/MoneyTest.java | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/test/java/MoneyTest.java diff --git a/src/main/java/cc/carm/plugin/ultradepository/manager/EconomyManager.java b/src/main/java/cc/carm/plugin/ultradepository/manager/EconomyManager.java index 13f0310..de0ceed 100644 --- a/src/main/java/cc/carm/plugin/ultradepository/manager/EconomyManager.java +++ b/src/main/java/cc/carm/plugin/ultradepository/manager/EconomyManager.java @@ -12,6 +12,9 @@ import cc.carm.plugin.ultradepository.hooker.VaultHooker; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import java.math.BigDecimal; +import java.math.RoundingMode; + public class EconomyManager { VaultHooker hooker; @@ -35,9 +38,9 @@ public class EconomyManager { public double sell(Player player, double price, int amount) { if (!isInitialized()) return 0D; - double money = price * amount; - getHooker().addMoney(player, money); - return money; + BigDecimal money = BigDecimal.valueOf(price * amount).setScale(2, RoundingMode.DOWN); + getHooker().addMoney(player, money.doubleValue()); + return money.doubleValue(); } public void sellAllItem(Player player, UserData userData) { diff --git a/src/test/java/MoneyTest.java b/src/test/java/MoneyTest.java new file mode 100644 index 0000000..dd29fb4 --- /dev/null +++ b/src/test/java/MoneyTest.java @@ -0,0 +1,20 @@ +import org.junit.Test; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class MoneyTest { + + @Test + public void test() { + System.out.println(get(1.2, 100)); + System.out.println(get(0.55, 10)); + System.out.println(get(0.21, 5)); + } + + + public double get(double price, int amount) { + BigDecimal money = BigDecimal.valueOf(price * amount).setScale(2, RoundingMode.DOWN); + return money.doubleValue(); + } +}