No hay nada raro ahí. Si te da NaN, posiblemente ese sea el resultado de tus object.sol1() o object.sol2(). No sé exactamente cuando pero ese es el tipo de valor (NaN) que se devuelve cuando se hace alguna operación errónea (mira Double.NaN
http://docs.oracle.com/javase/1.4.2/...ng/Double.html )
Se bueno.