String msg=“INFO1:172.16.228.244:40.0:40.0”;
StringTokenizer st=new StringTokenizer(msg,":"); //分解字符串
String keyword=st.nextToken();
String ipAddress=st.nextToken();//取得对方IP
String x = st.nextToken();
String y = st.nextToken();
int m= (int)(Integer.parseInt(x));
int n=(int)(Integer.parseInt(y));
System.out.println(m); error指向这一行。
System.out.println(n);
int px =m/3+1;
int py = n/4+1;
错误是这样的,我实在想不通呀!!
Exception in thread "Thread-3" java.lang.NumberFormatException: For input string: "40.0"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at FiveChess.ChessClient$Listen.run(ChessClient.java:306)
------解决方案--------------------
Integer.parseInt方法里面的字符串只能包含数字和正负号,正负号若有必须是第一位
你可以用
String s = "40.0";
double d = Double.parseDouble(s);
int i =(int)d;
------解决方案--------------------
可能是因为20.0是浮点数的原因吧,换成Double.paresDouble()试试
------解决方案--------------------
1,2楼可以哦。我试过了
------解决方案--------------------
正常的浮点数还是用Double吧
不要用其它了
会出问题的
------解决方案--------------------