2010-02-04 15 views
5

Es gibt einige seltsame Sache passiert mit meinem Bericht in SQL Server Reporting Services generiert und ich hoffe, ich bin nicht zu dumm. Ich verwende die Funktion "Runden", um Ganzzahlen zu erhalten. Manchmal wird ein 4.5 auf 4 und ein 5.5 auf 6 runden. Liegt das an der Rundungsmethode? Ich benutze diese:SQL Server Reporting Services Round() -Funktion

Round(Fields!GroupAverageAssessment.Value,0) 

Wie kann ich eine regelmäßige Runden machen (4,5 bis 5, 3,5 bis 4, 6,5 bis 7 und so weiter ...)

Dank

+1

Welche Datentyp ist Ihr ursprüngliches Feld? Ein float-Datentyp könnte aussehen wie es 4,5 ist aber wirklich 4.49999999999 oder etwas und die 5.5 könnte wirklich sein 5.500000000000001 – HLGEM

+0

Wenn * manchmal * in "manchmal ein 4.5 runden auf 4 und ein 5.5 wird auf 6 runden" ist tatsächlich * jedes Mal * , dann benutzt es die Rundung des Bankers. –

+0

Danke, das Feld ist als Double definiert, also sollte das nicht das Problem sein. Ich werde versuchen, von Null abgerundet. –

Antwort

13

Es klingt wie round to even, auch bekannt als Banker's Rundung.

Die andere Option ist "weg von Null", das ist, was Sie wollen:

Round(4.5, 0, MidpointRounding.AwayFromZero) 
+0

Aktualisierte Antwort - gerade festgestellt, dass AwayFromZero ist, was Sie wollen. –

+0

Danke, ich werde das versuchen. Ich wurde verwirrt, weil ich die Dokumentation gelesen habe und als ich MidpointRounding.AwayFromZero versuchte, wurde der Code als falsch unterstrichen. Wie auch immer, ich werde es versuchen ... –

+0

Awayfromzero arbeitete für mich, aber die rot unterstrichen war immer noch da. Wo platziere ich das Import System? Danke für die Hilfe. –

2

Verwenden Sie die MidpointRounding.AwayFromZero Option:

Round([calculated number], [num decimal places], MidpointRounding.AwayFromZero) 
+0

Danke, ich werde dies versuchen und Sie wissen lassen. –

Verwandte Themen