This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
That number has 20 digits, and doubles simply do not have that much accuracy. Around 16 digits is the most number of accurate digits that's possible. See #20 in the http://faq.javaranch.com/java/JavaBeginnersFaq for some background information.
The solution to your problem is to use the BigDecimal(String) constructor. It retains all digits of its parameter.