Formatting numbers with smaller glyphs for decimals

You might do like this:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{siunitx,relsize}

\sisetup{locale=FR}

\ExplSyntaxOn
\NewDocumentCommand{\hnum}{>{\SplitArgument{1}{.}}m}
 {
  \hnumA#1
 }
\NewDocumentCommand{\hnumA}{mm}
 {
  \num{#1}
  \IfValueT{#2}{\hnumB{#2}}
 }
\NewDocumentCommand{\hnumB}{>{\SplitArgument{1}{e}}m}
 {
  \hnumC#1
 }
\NewDocumentCommand{\hnumC}{mm}
 {
  \ensuremath
   {
    {,}\mathsmaller{\num[add-integer-zero=false,output-decimal-marker={}]{.#1}}
    \IfValueT{#2}{{}\times\num{e#2}}
   }
 }
\ExplSyntaxOff

\begin{document}

$\{\hnum{0.1},\hnum{2.3},\hnum{4.5e10}\}$

\bigskip

$\{\num{0.1};\num{2.3};\num{4.5e10}\}$

\end{document}

However the result is really ugly and difficult to interpret. Much better to use a semicolon.

enter image description here


How is this for a start?

\documentclass{article}

\def\numX#1.#2\relax{\mbox{$#1$\small$\mathord,#2$}}
\newcommand{\num}[1]{\numX#1\relax}

\begin{document}
  $\{\num{0.1}, \num{2.3}\}$
\end{document}