Pergunta : efeitos estranhos using REDONDO () em REALs em TSQL

Eu estou tentando adicionar acima algumas colunas que são reals, e arredondo o resultado às colunas decimais de 2x places.

My sou REALS, e eu pude reproduzir o erro using vars do tipo REAL.

Consider este código abaixo de que nós esperamos retornar retornos de 710.40

This: o
710.39999999999998

yet se nós removemos a chamada () ao
it retorna: o
710.40002

What está acontecendo aqui?
And como posso eu começ um arredondamento exato (aos lugares 2x decimais) destes REALS?

I am using agradecimentos do usuário 2000.

Many do SQL!
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
>DECLARE notpretty @r1 REAL, @r2 REAL, @r3 REAL, @r4 REAL, @r5 REAL, @r6 REAL, @r7 REAL, @r8 REAL, @r9 REAL, @r10 REAL, @r11 " do class= " do id= " codeSnippet785575 do
           
class= do

Resposta : efeitos estranhos using REDONDO () em REALs em TSQL

Mas como o ralmada indic você está usando um numérico aproximado que não seja pretendido para essa finalidade, assim que você tem um par opções:
1. Mudar seu código para usar tipos de dados apropriados tais como numérico (10, 5) para começ a saída consistente.
2. Deixar o código como é, e viver com ele ou promovê-lo a 2005/2008 e esperá-lo que você não começ o bocado outra vez.

Escolher seu veneno.
Outras soluções  
 
programming4us programming4us