0.1 float é maior que 0.1 double. Eu esperava que fosse falso [duplicado]

Esta questão já tem uma resposta aqui:

Se o operador <funciona corretamente para tipos de ponto flutuante, por que não podemos usá-lo para testes de igualdade? 5 respostas

Deixei:

double d = 0.1;
float f = 0.1;

deveria a expressão

(f > d)

Retornatrue oufalse?

Empiricamente, a resposta étrue. No entanto, eu esperava que fossefalse.

Como0.1 não pode ser perfeitamente representado em binário, enquanto o dobro tem15 para16 dígitos decimais de precisão, e float tem apenas7. Então, ambos são menos que0.1, enquanto o duplo está mais perto de0.1.

Eu preciso de uma explicação exata para otrue.

questionAnswers(7)

yourAnswerToTheQuestion