Conversão Implícita
Os resultados da conversão implícita de expressão ocorrem em tempo de execução para determinadas combinações de tipos de dados.
Por exemplo, a conversão implícita ocorre se uma expressão de números inteiros for especificada como o valor inicial para um campo de dados que seja do tipo flutuante. Observe que dentro de uma expressão, não há conversão implícita de um valor de sequência para um valor de tempo. Você deve utilizar a função convert ou a função stringtotime para converter explicitamente o valor de sequência para um valor de tempo.
Dentro de uma expressão complexa, a conversão implícita ocorre para fazer o tipo de dado do argumento atender aos requisitos de um operador ou de uma função. Por exemplo, a função substr obtém valores de número inteiro para os argumentos de posição inicial e comprimento. Se você especificar os valores flutuantes 2.5 e 1.0 como esses argumentos, eles serão implicitamente convertidos nos valores de números inteiros 2 e 1 antes da expressão ser avaliada.
A conversão implícita ocorre em tempo de execução para as seguintes combinações de tipos de dados:
Flutuante para número inteiro
Todos os dígitos à direita do ponto decimal no número de vírgula flutuante são truncados. Por exemplo, se você especificar 123.4567 como o valor inicial para um campo de dados de número inteiro, após a inicialização, o valor do campo de dados é definido como 123.
Número inteiro para flutuante
Um ponto decimal e 0 são anexados após o último dígito do número inteiro.
Dentro de uma expressão complexa contendo tanto valores flutuantes quanto valores de número inteiro, a conversão implícita ocorre se um operador exigir que os valores seja do mesmo tipo de dado. Nesse caso, o valor de número inteiro é convertido no tipo de dados flutuante antes de avaliar a expressão. Por exemplo, se você especificar 1.5 + 2, o 2 é convertido em 2.0.