você pode seguir este link para saber mais sobre como converter uma string / número em número / float / decimal em PHP. AQUI ESTÁ O QUE ESTE LINK DIZ ...
Método 1: Usando a função number_format (). A função number_format () é usada para converter uma string em um número. Ele retorna o número formatado em caso de sucesso, caso contrário, dá E_WARNING em caso de falha.
$num = "1000.314";
//Convert string in number using
//number_format(), function
echo number_format($num), "\n";
//Convert string in number using
//number_format(), function
echo number_format($num, 2);
Método 2: Usando a conversão de tipos: A conversão de tipos pode converter diretamente uma string em um tipo primitivo flutuante, duplo ou inteiro. Esta é a melhor maneira de converter uma string em um número sem nenhuma função.
// Number in string format
$num = "1000.314";
// Type cast using int
echo (int)$num, "\n";
// Type cast using float
echo (float)$num, "\n";
// Type cast using double
echo (double)$num;
Método 3: Usando as funções intval () e floatval (). As funções intval () e floatval () também podem ser usadas para converter a string em seus valores inteiros e float correspondentes, respectivamente.
// Number in string format
$num = "1000.314";
// intval() function to convert
// string into integer
echo intval($num), "\n";
// floatval() function to convert
// string to float
echo floatval($num);
Método 4: Adicionando 0 ou executando operações matemáticas. O número da string também pode ser convertido em um inteiro ou flutuante adicionando 0 com a string. Em PHP, executando operações matemáticas, a string é convertida em um inteiro ou float implicitamente.
// Number into string format
$num = "1000.314";
// Performing mathematical operation
// to implicitly type conversion
echo $num + 0, "\n";
// Performing mathematical operation
// to implicitly type conversion
echo $num + 0.0, "\n";
// Performing mathematical operation
// to implicitly type conversion
echo $num + 0.1;
VARCHAR>11
no comprimento .. não restringi exatamente o porquê ainda.