Number formats 50 -> 0.0005
are you sure you put all zeros correctly? try 3 * Point instead and make sure you add the obtained value to a correct price value(your value is correct if you get it from some price, ie low or high or close of some bar, it is incorrect if you get it from manually installed horizontal line or from the average(and other operations with dividing) of two or more prices. you can also make your values acceptable by NormalizeDouble(value, Digits)
BUT: When I do 3.0 / 100000 I get the useless 3e-005 instead of 0.00003
It is not useless. I guess that you are probably printing the value?
Print( 3.0 / 100000);
Will print 3e-005
If you want to see it in a more recognisable form
Print( DoubleToStr(3.0 / 100000,Digits));
but it is the same value
UPDATE: When I do 50.0 / 100000 I get the correct, usable answer = 0.0005
ABOVE 50.0 instead of 50, just in case you missed it!
BUT: When I do 3.0 / 100000 I get the useless 3e-005 instead of 0.00003