Pytanie : dziwny skutek using ROUND () na Real w TSQL

I próbować powrót powrót kolumna che być real, i round the rezultat 2x decimal places.

My kolumna być REAL, i I być sprawnie the pluskwa using vars typ REAL.

Consider ten kod pod che my oczekiwać 710.40

This powrót:
710.39999999999998

yet jeżeli my usuwać the wezwanie WRACAĆ ()
it wracać:
710.40002

What zdarzać się tutaj?
And Jak móc I ścisły (2x dziesiątkowy miejsce) te REAL?

I am using SQL Serwer 2000.

Many dzięki!
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
DECLARE @r1 REAL, @r2 REAL, @r3 REAL, @r4 REAL, @r5 REAL, @r6 REAL, @r7 REAL, @r8 REAL, @r9 REAL, @r10 REAL, @r11 REAL
SET @r1 = 0.0
SET @r2 = 0.0
SET @r3 = 0.0
SET @r4 = 0.0
SET @r5 = 0.0
SET @r6 = 0.0
SET @r7 = 710.40002
SET @r8 = 0.0
SET @r9 = 0.0
SET @r10 = 0.0
SET @r11 = 0.0
WYBRANY ROUND ((@R1 + @R2 + @R3 + @R4 + @R5 + @R6 + @R7 + @R8 + @R9 + @R10 + @R11), 2)

Odpowiedź : dziwny skutek using ROUND () na Real w TSQL

Ale gdy ralmada wskazywać opcja ty używać opcja numeryk który zamierzać dla ten purpose, więc ty mieć kilka opcja:
1. Zmieniać twój kod odpowiedni dane typ tak jak numeryk (10, 5) konsekwentny wydajność.
2. Opuszczać the kod być, i żyć z ono lub ulepszać 2005/2008 i mieć nadzieję ty dostawać kawałek znowu.

Podnosić twój jad.
Inne rozwiązania  
 
programming4us programming4us