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(); + } +}