Попробуйте привести к десятичному числу вместо двойного.
Документация Postgres для типа "money" предполагает, что вывод находится в форме "$ 1,000.00" (зависит от локали), вв этом случае вам нужно будет проанализировать возвращаемое значение и удалить пунктуацию перед приведением.
Кроме того, если это производственный код, вы захотите параметризовать свой SQL вместо добавления туда значений параметров, в противном случае вы 'Он открыт для потенциальных атак с использованием SQL-инъекций и может также иметь проблемы с производительностью.
В .NET есть несколько потоков, обсуждающих типы валютных данных, которые также могут быть полезны.Вот один из них: Кто-нибудь знает тип денег в .NET?