Problemas com Double

Olá,

alguém poderia me explicar por que o resultado da execução do método abaixo é 14122.999999999998 e não 14123?

public class Teste {

	public static void main(String[] args) {
		Double numero = new Double("141.23");
		System.out.println(numero*100);
	}

}

Utilize a classe BigDecimal para trabalhar com números fracionários.

Pois é, mas Float e Double também servem pra armazenar números decimais. Se eles não funcionam corretamente, na minha opinião nem deveriam existir.

Valeu Carneiro.