我正在创建一个基于电影InTime的Minecraft插件,并且我正在尝试创建代码,玩家在玩家死亡时会丢失25%的时间。
目前的代码是:
String minus = itapi.getTimeString(player.getName());
itapi.removeTime(player.getName(), itapi.getDeathTime());
ItemStack book = itapi.createTimeCard("Death of " + player.getName(), minus, 1);
itapi.removeTime(player.getName(), minus * 0.25);
e.getDrops().add(book);
虽然第4行标记为“The operator * is undefined for the argument type(s) String, double
”
我知道这可能是一个真正简单的解决方案,但我想出任何建议吗?
TimeString
必须是string
答案 0 :(得分:3)
您不能将String
乘以任何东西。您需要将其转换为double
,然后将其与Double.parseDouble
相乘:
Double.parseDouble(minus) * 0.25
如果NumberFormatExceptions
无法表示为数字,请务必处理任何minus
。
答案 1 :(得分:1)
您将minus
定义为String,然后将String *定义为double。你不能将String乘以double。将TimeString转换为实际值,如int秒,然后您可以对其进行数学运算。