2013-03-21 9 views
0

Ниже приводится часть моего кода:Строка Int в ImageJ

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.

Любые идеи?

Я попытался преобразования строки в двойной и от двойной к междунар но получил сводную ошибку о том, «двойной не может быть разыменовываются»

Спасибо за ваше время

Бейтман

+1

что значение ' xdim' –

+1

Вы получаете 'java.lang.NumberFormatException' –

+1

' 400.0' - это не int, действительно. – LaGrandMere

ответ

2

Вместо

int xwidth = Integer.parseInt(xdim); 

вы должны попробовать

double xwidth = Double.parseDouble(xdim); 

или

float xwidth = Float.parseFloat(xdim); 

Как вы явно имеют десятичную дробь там (.0), давая NumberFormatException при попытке проанализировать как межд ...

Если вы хотите использовать xwidth как межд , вы также должны использовать Math.round.

Берегитесь, если вы передаете double в качестве аргумента, вы получите long назад, но если вы передаете float, возвращение будет иметь int ...

int xwidth = Math.round(Float.parsefloat(xdim)); 
Смежные вопросы