Firstly, my apologies for any previous confusion, I've separated out various questions onto distinct pages.
This problem came up in the context of trying to split a decimal number. Good solutions to both my questions with pgf and package independent have been provided or will be soon on those pages.
The main intent of this question is that I'm trying to better understand how things are expanded in LaTeX. There is good information in the answers below about just this aspect. Perhaps if those people wouldn't mind moving sidetrack stuff to either of the two questions linked above to help me simplify the situation. I realise this is a bit tricky as the expansion idea was being discussed in the context of splitting a length. Thanks in advance.
The MWE is just a whole bunch of ideas I was experimenting with, trying to expand values to get at what I wanted and failing because I don't yet fully understand how LaTeX, or TeX, expands various types of value.
MWE Output

MWE Code
\documentclass[12pt]{article}
\usepackage[a5paper,margin=14mm]{geometry}
\makeatletter
\def\printplainbefore#1{\expandafter\@printplainbefore#1..\@nil}
\def\@printplainbefore#1.#2.#3\@nil{#1}
\def\printplainafter#1{\expandafter\@printplainafter#1..\@nil}
\def\@printplainafter#1.#2.#3\@nil{#2}
\newcommand*{\getlength}[1]{\strip@pt#1}
\makeatother
\def\mythe#1{\expandafter\getlength{#1}}
\newcommand{\savenum}[2]{\expandafter\xdef\csname num#1\endcsname{#2}}
\newcommand{\getnum}[1]{\csname num#1\endcsname}
\newlength{\thislength}
\setlength{\thislength}{123.456pt}
\tracingmacros=1
\begin{document}
\par The: \the\thislength
\quad Split: \printplainbefore{\the\thislength} -- \printplainafter{\the\thislength}
\par Getlength: \getlength{\thislength}
\quad Split: \printplainbefore{\getlength{\thislength}} -- \printplainafter{\getlength{\thislength}}
\par MyThe: \mythe\thislength
\quad Split: \printplainbefore{\mythe\thislength} -- \printplainafter{\mythe\thislength}
\par Getlength variable first: \getlength{\thislength}
\quad Split: \xdef\test{\getlength{\thislength}} \printplainbefore{\test} -- \printplainafter{\test}
\par Getlength save: \getlength{\thislength}
\quad Split: \savenum{thislength}{\getlength{\thislength}} \printplainbefore{\getnum{thislength}} -- \printplainafter{\getnum{thislength}}
\end{document}

