0

以下是我的代码的一部分:

String xdim = fake.substring(0,index);
IJ.showMessage("xdim "+xdim);
String ydim = fake.substring((index+1));
int xwidth = Integer.parseInt(xdim);

它可以编译,MessageDialog 框会生成语句“xdim 400.0”。然后程序在该行产生错误

int xwidth = Integer.parseInt(xdim);

我在这个网站上看到回答的问题说这是使用的方法。看来我的字符串没有被解析为 Int。

有任何想法吗?

我尝试将 String 转换为 double 并从 double 转换为 int 但出现编译错误,指出“无法取消引用 double”

谢谢你的时间

贝特曼

4

1 回答 1

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返回,但如果你传递 a float,返回将是int...

int xwidth = Math.round(Float.parsefloat(xdim));
于 2013-03-21T11:23:07.177 回答