Проблема двойного значения J2ME

Я не могу отобразить двойное значение в TextField после некоторой обработки. По сути, я просто конвертирую Celcius в FarenHeit в приложении-конвертере. Вот код


   double c = Double.parseDouble(t1.getString());
   double f = c * (9.0D/5.0D) + 32.0D;


Netbeans is giving me the following runtime error

TRACE: , Exception caught in Display class
java.lang.IllegalArgumentException
        at javax.microedition.lcdui.TextField.setCharsImpl(), bci=127
        at javax.microedition.lcdui.TextField.setString(), bci=37
        at ConverterMain.convert(ConverterMain.java:139)
        at ConverterMain.commandAction(ConverterMain.java:66)
        at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46
        at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74
        at com.sun.midp.chameleon.layers.SoftButtonLayer.commandSelected(), bci=11
        at com.sun.midp.chameleon.layers.MenuLayer.keyInput(), bci=290
        at com.sun.midp.chameleon.CWindow.keyInput(), bci=38
        at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
        at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
        at com.sun.midp.events.EventQueue.run(), bci=179
        at java.lang.Thread.run(Thread.java:619)



person veenit33    schedule 19.04.2011    source источник


Ответы (2)


setString

f+""

означает преобразовать его в строку при установке в поле

person Nirmal- thInk beYond    schedule 20.04.2011

Трудно сказать с таким небольшим кодом. На вашем месте я бы добавил пару логов типа

System.out.println(t1.getString());
double c = Double.parseDouble(t1.getString());
System.out.println(c);
double f = c * (9.0D/5.0D) + 32.0D;
System.out.println(f);

Вы уверены, что t1.getString() является допустимым значением Double? Попробуйте использовать блок try-catch

person Pablo Grisafi    schedule 19.04.2011