以下是我的代码的一部分:
String xdim = fake.substring(0,index);
IJ.showMessage("xdim "+xdim);
String ydim = fake.substring((index+1));
int xwidth = Integer.parseInt(xdim);
它编译好了,MessageDialog Box生成语句“xdim 400.0”。 然后程序在行
处产生错误int xwidth = Integer.parseInt(xdim);
我在这个网站上看到了回答的问题,说这是使用的方法。我的字符串似乎没有被解析为Int。
有什么想法吗?
我尝试将String转换为double,从double转换为int但是得到了一个编译错误,指出“double不能解除引用”
感谢您的时间
贝特曼
答案 0 :(得分:2)
而不是
int xwidth = Integer.parseInt(xdim);
你应该试试
double xwidth = Double.parseDouble(xdim);
或
float xwidth = Float.parseFloat(xdim);
因为你明显有一个小数(.0
),在尝试解析为int时给出一个NumberFormatException ...
如果要将xwidth用作int,则也应使用Math.round。
请注意,如果您将double
作为参数传递,则会返回long
,但如果您传递float
,则返回int
...
int xwidth = Math.round(Float.parsefloat(xdim));