I just made 1 paragraph style with 2 GREP styles and 3 character styles and it worked fine…
Paragraph font size: 18pt
Decimals character style font size: 11pt, baseline shift: 6pt
Underline Decimals character style: underline 20pt, dashed (4 and 4), offset 0pt, gap & underline filled the same
Underline character style: underline 20pt, dashed (4 and 4), offset -6pt, gap & underline filled the same
Character style: Underline Decimals
GREP: dd
Chracter style: Underline
GREP: € d+,
The first GREP style finds two digits, the second finds the Euro sign followed by a space, any number of digits and a comma. Change it to $ d+. if you want to find US$ and use a period instead of a comma.
Keep them in this order, otherwise the underline will mess up.
By the way, I use the baseline shift option to create prices with decimals that've been “superscripted” to my own specs, not the font's. I then apply that style using Nested Styles in the paragraph.