这主要是由于在程序中double用的表示方法是decimal,而在计算机中任何数字表示方法是binary。
而有些decimal用binary表示时是无限长的,在计算机中是有长度限制,这时就会出现精度问题
参见: http://bobcat.webappcabaret.net/javachina/faq/08.htm#math_Q18
reference: http://java.sun.com/docs/books/jls/first_edition/html/4.doc.html#9208,