I've downloaded two different reference genome of E. coli (E. coli K-12 MG1655: U00096.1 and E. coli K-12 MG1655: U00096.2) and they have different lengths. I searched for the meaning of reference genome numbers in detail but I couldn't find anything that help me with my question: Why do two different E. coli reference genomes have different lengths?
U00096.2 is an updated version of U00096.1; you should preferably use the former for your analysis. In fact, even U00096.2 has been updated. The latest version is U00096.3. In general, the number after the dot (period) in NCBI accession numbers, denotes the version.
VERSION is made of the accession number of the database record followed by a dot and a version number (and is therefore sometimes referred to as the "accession.version")
As WYSIWYG answered, they are updated versions.
The difference in length is mainly because that later versions are sequenced / aligned with better equipement and techniques, providing results that better reflects the reality.
Some sections of the genomes can be harder to sequence and efficiently align, but with more advanced techniques it can be done.
Sequencing 100% of a genome with no error and perfect alignement is not yet possible but we are getting there slowly.