I've tried to add some global variables with dimensional values and noticed a lot of strange things in SolidWorks behavior.
"x" = 1deg
"x2" = "x"
x2 evaluates to 1mm. Why degrees become millimeters?
"x" = 1deg
"x3" = "D1@Sketch2"
"x2" = "x"
x2 evaluates to 1deg. I've just inserted another global variable which isn't related to "x" and "x2" and now it preserves units correctly.
"x" = cos(1deg)
x evaluates to 0.999mm. Cosine is non-dimensional, isn't it?
"x" = 1deg
"x2" = cos("x")
x evaluates to 0.999. So, if argument is another variable, behavior changes.
"x" = tan(1deg)
x evaluates to 0.017mm.
"x" = tan(1deg) * 10
x evaluates to 0.17. Where are millimeters?
"x" = 0.017mm * 10
x evaluates to 0.17mm. So, the matter is not in multiplication.
It's not a full list, it seems that this functionality is completely broken. I use SolidWorks 2014 x64 SP3.0.
SolidworksParts And Features