Сначала преобразуйте строку в деньги, затем преобразуйте ее в любой другой числовой формат, поскольку тип money всегда дает истинную числовую строку. Тогда вы никогда не увидите ошибки.
Попробуйте следующее в своем запросе, и вы поймете, о чем я говорю. Оба вернутся 2345,5656. Тип данных Money округляется до 4 знаков после запятой, и, следовательно, приведение вызывает округление до 4 знаков после запятой.
SELECT CAST('2,345.56556' as money), CAST('$2,345.56556' as money)
Cast (приведение («2344» в качестве денег) в качестве float) будет работать идеально или
приведение (приведение («2344» в качестве денег) к десятичной (7,2)) также будет работать.
Даже приведение (CAST ($ 2,345.56556 в качестве денег) как int) будет отлично работать, округляя до ближайшего целого числа.