Note: I've separated this question from what was becoming a very tangled discussion. I know egreg already has a solution, so I'll just wait until he posts it here.
Question: The solution has to take a decimal number in any form, that is, a dimen/length variable, a plain \def, a number string, whatever and use only basic LaTeX to separate out the integer part and only the digits of the fractional part without preceding "." or "0." leaving the user of said solution to then format these results any way they like.
The related question using pgfmath is here. The pgfmath routines chop off the pt for you. In that case you only need a macro that either reads \pgfmathresult or similar.

My MWE presents a limited solution that I came up with using help from E.Ellett and egreg before they knew just how general I wanted this. It provides two routines that read a length variable, that is, one declared with \newlength{\thelength}, but as pointed out by egreg, it still has only limited expanding ability.
MWE Code
\documentclass[border=5mm]{standalone}
\makeatletter
\def\my@get@length#1{\edef\pure@length{\strip@pt#1}}
\def\printplainbefore#1{\my@get@length#1\expandafter\@printint\pure@length..\@nil}
\def\@printint#1.#2.#3\@nil{#1}
\def\printplainafter#1{\my@get@length#1\expandafter\@printfrac\pure@length..\@nil}
\def\@printfrac#1.#2.#3\@nil{#2}
\makeatother
\newlength{\thislength}
\setlength{\thislength}{123.456pt}
\tracingmacros=1
\begin{document}
The: \the\thislength\quad
Split: \printplainbefore{\thislength} -- \printplainafter{\thislength}
\end{document}
