首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java帮助了25%的时间

Java帮助了25%的时间
EN

Stack Overflow用户
提问于 2014-01-11 06:13:37
回答 2查看 101关注 0票数 0

我正在开发一个基于电影InTime的“我的世界”插件。当玩家杀死你时,你会被暂停,失去25%的时间,并以TimeCard (书本)的形式丢弃它。杀死你的玩家可以拿起TimeCard并使用它。

目前,该插件只是试图获得玩家的年数,乘以25%,然后发出命令从玩家移除25年。(y告诉服务器需要几年而不是几天、几周、几小时)

这是它的代码:

代码语言:javascript
复制
  Integer time = itapi.getPlayerYears(player.getName());
  Double remove = Integer.valueOf(time) * 0.25;
  String minus = String.valueOf(remove) + 'y' ;
  itapi.removeTime(player.getName(), itapi.getDeathTime());
  ItemStack book = itapi.createTimeCard("Death of " + player.getName(), minus, 1);
  itapi.removeTime(player.getName(), minus);
  e.getDrops().add(book);

不过,当玩家被杀时,会抛出此错误:

http://pastebin.com/0aqSV37S

代码语言:javascript
复制
Caused by: java.lang.NumberFormatException: For input string: "1.25"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.7.0]
        at java.lang.Integer.parseInt(Integer.java:492) ~[?:1.7.0]
        at java.lang.Integer.parseInt(Integer.java:527) ~[?:1.7.0]
        at com.BlackMage.InTime2.InTime2API.removeTime(InTime2API.java:551) ~[?:?]

我对如何解决这些错误感到困惑,在尝试了几件不同的事情之后,我正在寻求一些建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-11 06:19:02

如果您在堆栈跟踪中看得更低,您将看到:

代码语言:javascript
复制
Caused by: java.lang.NumberFormatException: For input string: "1.25"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.7.0]
    at java.lang.Integer.parseInt(Integer.java:492) ~[?:1.7.0]
    at java.lang.Integer.parseInt(Integer.java:527) ~[?:1.7.0]
    at com.BlackMage.InTime2.InTime2API.removeTime(InTime2API.java:551) ~[?:?]
    at com.BlackMage.InTime2.DeathListener.onDeath(DeathListener.java:37) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0]

查看InTime2API中的InTime2API方法(在第551行,或者只找到试图在该方法中调用parseInt的一行)。如果希望解析成功,则需要执行parseFloat而不是parseInt,并将结果存储在浮点变量中。

票数 1
EN

Stack Overflow用户

发布于 2014-01-11 06:15:00

在代码中的某个地方,您正在将一个String解析为int,它尝试为1.25 (而不是int )尝试,所以错误

代码语言:javascript
复制
Caused by: java.lang.NumberFormatException: For input string: "1.25"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21059187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档