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.