My students found this problem, which I could not solve. The percent is always printed in the serif font.
Here is a test code:
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % T1 Schrift Encoding
\usepackage{lmodern} % Latin Modern
\usepackage[ngerman]{babel}
\usepackage{float}
\usepackage{siunitx}
\sisetup{%
mode = math,
detect-family,
detect-weight,
exponent-product = \cdot,
number-unit-separator=\text{\,},
output-decimal-marker={\text{,}},
math-rm=\mathsf,
text-rm=\sffamily,
}
\begin{document}
\sffamily\noindent
Text \SI{1.23}{\%} and further text.
\begin{table}[H]
\sffamily
\begin{tabular}{ll}
\SI{1.23}{\%} & 1,23\,\%
\end{tabular}
\end{table}
\end{document}
;)
\,
before the\%
? That should not be nessary