>>98
誰の言うことが正しいのかの判断は君に任せるが、
Decimal使えっていうのは俺はちょっと論点ずれてると思うよ。

扱う値の範囲にもよるが、普通はDoubleで問題ないし、以下のようなコードを書くべき。
Private Function SomeFunc(ByVal value As Double) As String
  Dim regex As New Regex("^(\d*[.]+0*)\d*$")
  Dim m As Match = regex.Match(value.ToString("G"))
  If m.Success Then
    Return m.Groups(1).Value
  Else
    Return ""
  End If
End Function