podwójne wyświetlanie bardzo długiej liczby

Mam proste obliczenia, które używa podwójnych, ale otrzymuję nieoczekiwany wynik i nie rozumiem dlaczego?

import java.util.Scanner;
public class VersatileSnitSoft {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        double amount;
        System.out.print("What’s the price of a CD-ROM? ");
        amount = myScanner.nextDouble();
        amount = amount + 25.00;
        System.out.print("We will bill $");
        System.out.print(amount); 
        System.out.println(" to your credit card.");

    }

}

Jeśli wprowadzę 2.99, otrzymam wynik.

We will bill $27.990000000000002 to your credit card.

questionAnswers(4)

yourAnswerToTheQuestion