Devo essere in grado di convertire una stringa di versione in un numero intero. Ho deciso che seguirò versioning semantico in modo che le stringhe di versione siano del tipo x.y.z
.
Inizialmente pensavo che un semplice algoritmo come int = x * 10^6 + y * 10^3 + z
sarebbe stato sufficiente e molto probabilmente lo sarà dato che non ho mai visto un software con un valore maggiore / minore / patch di tre cifre, tuttavia in teoria è possibile che un tale algoritmo fallisca .
Supponiamo di avere versioni 2.0.0
e 1.1000.0
, in questo caso gli interi sarebbero
int(2.0.0) = 2 * 10^6 + 0 * 10^3 + 0 = 2000000
int(1.1000.0) = 1 * 10^6 + 1000 * 10^3 + 0 = 2000000
Chiaramente l'algoritmo è difettoso, voglio chiedere se esiste un algoritmo noto che potrei usare.
Anche in questo caso probabilmente dovrei eseguire il calcolo in questo modo, ma sono interessato a scoprire se esiste un modo antiproiettile?