It is 'not' correct. 1 is the same as 01 but 1 is not the same as 01. *very_strange* :-)
@Afrow: For a C compiler is 010 an octal value and not a Integer. I think that is meaning by the Instructor. But here we have a Version number and not an single value. The devinition of a version is: integer dot integer [dot integer dot integer]. [] is not mandatory.
Other example: Whe you try to use a Microsoft .NET class to convert a string value to a version you can use a class named Version(). For this class the value "1.1.1" is the same as "1.01.01". This class ignore the leading zero's.
C#:
Version v1 = new Version("1.1.1");
MessageBox.Show( v1.ToString() ); // -> 1.1.1
Version v2 = new Version("1.01.01");
MessageBox.Show(v2.ToString()); // -> 1.1.1
Currently i replace the value ".0" with "." in my NSIS Script before i use the VersionCompare. It works fine but in future it was more user-friendly when the VersionCompare do this for me.