The extra 0 comes from the 0 after the colon.
Instead, try {}{0:#,0}
.
From the MSDN docs on Custom Numeric String formats (emphasis added):
"0" | Zero placeholder | Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.