Too Complicated... It's difficult with you, guys, here. You still have some reservations :) Look, BPlus, it doesn't rounding because I didn't mean to. If you look at my source code, the row where this is:
newdecimalnum ## = INT (newdecimalnum ##) 'or comment this row and rewrite it as newdecimalnum = newdecimalnum \ 1 for rounding outputs.
It gives an answer. When you rewrite this, you get a rounded output.
But what surprises me. Neither mine nor Steve's function returns more than a 15-digit decimal. Why? Although a larger decimal number does not seem to be meaningful, it still does the same outputs. That is, both DOUBLE and FLOAT return the same output?
Try this:
DIM A AS DOUBLE
DIM b AS _FLOAT
A# = 0.12345678901234567890
b## = 0.12345678901234567890
PRINT A#
PRINT b##
Why?