Olá...
É estranho... se entendi corretamente, você tem uma consulta que retorna um número sem decimais e, se o altera, continua da mesma forma.
Peguei sua consulta Select cast(34.453 as decimal(10,2)) e a executei... o resultado imediato no gerador de consultas foi 34.45
Está usando uma busca formatada? Porque, se for o caso, verifique em que tipo de campo está deixando o valor.
Seria bom se você pudesse fornecer mais alguma informação.
Cumprimentos,