Conversões de flutuante
Um objeto de um tipo flutuante pode ser convertido para um tipo flutuante mais preciso com segurança — ou seja, a conversão causa sem perda de significância.Por exemplo, as conversões de float para double ou double para long double seguros e o valor é alterado.
Um objeto de um tipo flutuante pode ser convertido para um tipo de menos preciso, se ele estiver em um intervalo representáveis por esse tipo.(Consulte Limites flutuante para os intervalos de tipos de flutuantes.) Se o valor original não pode ser representado com precisão, ele pode ser convertido em um próximo superior ou o próximo valor representáveis inferior.Se não há tal valor existir, o resultado é indefinido.Considere o exemplo a seguir:
cout << (float)1E300 << endl;
O valor máximo representáveis por tipo de float é 3.402823466E38 — um número muito menor do que 1E300.Portanto, o número é convertido para o infinito e o resultado é 1. #INF.