Better converting not to double but to DWORD or ULONGLONG (in .NET it uint and ulong).
And make high version part to be at high bit order so you can compare that 2 numbers only.
In .NET it will looks:
public uint GetVersion(string _version)
{
uint uiVersion = 0;
string[] aVersion = _version.Split('.');
for (int i = 0; i < aVersion.Length; i++)
{
uiVersion += (uint.Parse(aVersion[i]) << (8 * (aVersion.Length - i - 1)));
}
return uiVersion;
}
And the usage:
uint uiVersion1 = GetVersion("6.2.54");
uint uiVersion2 = GetVersion("6.2.52");
if (uiVersion1 > uiVersion2)
{
}
if (uiVersion1 < uiVersion2)
{
}
if (uiVersion1 == uiVersion2)
{
}
Regards,
Maxim.