Align a list of numbers Perhaps something like this is here already, but I couldn't find it.
It is not the same as Aligning Lines!.
Example:
Input:
98.6
$2,750.17
-$23
-86
3,120,487.19

Output:
       98.6
   $2,750.17
     -$23
      -86
3,120,487.19

Note that .6 isn't right-padded to .60 or .6 .
Input:

A list/array of strings (or lines from stdin), each one containing a number, without leading or trailing whitespace
Some may begin with begin with a negative sign (-), and/or a currency symbol ($), in that order
Some may contain a decimal mark (.)
Digits before the decimal mark will sometimes be grouped into threes and separated by commas

Output:

A list/array (or stdout)
Each entry is left padded with spaces so that the actual or implied decimal marks align
No trailing whitespace

This is code-golf, so shortest code wins.

Update:
This first attempt has turned into a valuable learning experience: always use the sandbox.

My first version was overly complicated, and I trimmed it down a lot before actually posting.
I simplified it again in response to the quite valid comments that soon arrived.
Unfortunately, the resulting question ended up too simple (effectively a duplicate of the question that I said wasn't), with most of the description of the input becoming irrelevant.
Somewhere in there I managed to lose the original intent, which was to process only what are valid numbers while leaving other strings
alone.
(The idea came from a function in an existing program that does just that, its purpose being to turn all strings into something that will look good if everything is printed left-justified.)

When posing a problem, take more time to think it through, and as I said: always use the sandbox.
05AB1E, 19 18 15 10 bytes
Code:
'.©«®δkZαú

Try it online! Explanation:
'.©«             # append . to each element
    ®δk          # Find index of . for all elements
       Z         # Get the largest
        α        # Get the absolute difference between the indices
         ú       # Pad by that much