i guess your main problem is in displaying the numeric value in proper format. so data types here are of no concern. If you use format function or formatNumber function the value is bound to be rounded.
I dont know any math function for that
If i've to show such kind of value, i would use
mdisplay = Int(mVATValue) & Mid(mVATValue, InStr(1, mVATValue, "."), 5)
mdisplay = Format(mdisplay, "###,###,##0.0000")
msgbox mdisplay
Best Luck..
Nilesh