Olha aí as oportunidades de pequenos jobs para quem tá buscando freela por aí. Além disso, vai acabar com a prática que alguns ainda insistiam em armazenar CNPJ como número.

Essa questão de armazenar CPF/CNPJ como número também é uma medida para economizar memoria. Enquanto uma string gastaria pelo menos 9 bytes para CPF e 14 para CNPJ, armazenar como inteiro gastaria apenas 8. É claro que pra quem é iniciante isso é um erro, mas é bem comum instituições como bacos armazenarem esses dados dessa forma para economizar memória.

O problema de guardar como número é que o zero à esquerda pode acabar sendo ignorado, já que para um número, `02`, `000002` e `2` são basicamente a mesma coisa: ambos representam o mesmo valor numérico, a mesma grandeza/quantidade (muda apenas a formatação). E aí temos erros grotescos - e na minha opinião imperdoáveis - como [o que ocorreu com a Caixa certa vez](https://economia.uol.com.br/noticias/redacao/2020/04/27/auxilio-r-600-zero-cpf-some-confirmacao-do-pedido.htm) (o sistema removia o zero à esquerda e dava erro porque o CPF estava inválido). Pra mim, é uma economia que não vale a pena. Ainda mais se a empresa for grande (como um banco, por exemplo), pois a suposta economia de memória não justifica os eventuais erros que podem acontecer. Até porque os bancos devem guardar uma quantidade tão absurda de informações que os CPF's e CNPJ's devem ocupar uma porcentagem bem pequena do todo. E mesmo se a empresa for pequena, ainda acho que não justifica. É o típico caso de micro-otimização desnecessária e que acaba causando outros problemas. Informações como o CPF, CNPJ, RG, telefone, CEP e similares não são números, pelo menos não no sentido de representar uma quantidade e/ou precisar fazer cálculos com eles ("_vamos somar seu CPF com o CEP da sua casa, e calcular a média dos seus telefones_"). Eles são identificadores/códigos que por acaso usam dígitos - aliás, alguns podem ter letras, como RG (e agora o CNPJ), por exemplo. E o zero à esquerda faz toda a diferença, ao contrário do que acontece com números. Então o correto é guardar como texto mesmo. Leitura adicional: - [Tipo do campo CPF ou CNPJ no banco de dados VARCHAR ou INT?](https://pt.stackoverflow.com/q/47871/112052) - [Quais são os tipos de dados apropriados para colunas como endereço, e-mail, telefone e celular, para base de dados SQL?](https://pt.stackoverflow.com/q/4170/112052)