ClearAll[NormalizeAngle, NormalizeDegree, NormalizeGradian, NormalizeMil, NormalizeRadian] NormalizeAngle[d_, full_] := Module[{a = d}, If[Abs[a/full] > 4, a = a - Sign[a] full (Quotient[Abs[a], full] - 4) ]; While[a < -full, a += full]; While[a > full, a -= full]; a ] ClearAll[Degree2Gradian, Degree2Mil, Degree2Radian, Gradian2Degree, Gradian2Mil, Gradian2Radian, Mil2Degree, Mil2Gradian, Mil2Radian, Radian2Degree, Radian2Gradian, Radian2Mil] NormalizeDegree[d_] := NormalizeAngle[d, 360] NormalizeGradian[d_] := NormalizeAngle[d, 400] NormalizeMil[d_] := NormalizeAngle[d, 6400] NormalizeRadian[d_] := NormalizeAngle[d, 2 Pi] Degree2Gradian[d_] := d 400/360 Degree2Mil[d_] := d 6400/360 Degree2Radian[d_] := d Pi/180 Gradian2Degree[d_] := d 360/400 Gradian2Mil[d_] := d 6400/400 Gradian2Radian[d_] := d 2 Pi/400 Mil2Degree[d_] := d 360/6400 Mil2Gradian[d_] := d 400/6400 Mil2Radian[d_] := d 2 Pi/6400 Radian2Degree[d_] := d 180/Pi Radian2Gradian[d_] := d 400/(2 Pi) Radian2Mil[d_] := d 6400/(2 Pi) MapThread[Construct, {{Degree2Gradian, Degree2Mil, Degree2Radian, Gradian2Degree, Gradian2Mil, Gradian2Radian, Mil2Degree, Mil2Gradian, Mil2Radian, Radian2Degree, Radian2Gradian, Radian2Mil}, {-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000}}]