2016-04-05 9 views
0

Ich habe gerade festgestellt, dass einige Beträge in meinen Berechnungen nicht mit den ursprünglichen übereinstimmen (in Excel - bevor ich es importiert habe).Betrag, der beim Ersetzen von Komma auf Punkt aufgerundet wird

Brasilianische Mengen zeigt in der Regel Komma als dezimale Kennung, jedoch behielt ich meinen SQL Server als Standard Englisch, die es nicht erkennt.

Der Workaround, der gefunden wurde, war, Komma zu Punkt zu ersetzen, aber SQL Server wird es automatisch umrunden. Siehe untenstehendes Beispiel:

select vlr_contab_item vl1, replace(vlr_contab_item,',','.') vl2 
-------------------- 
vl1  | vl2 
-------------------- 
40783,29 | 40783.3 
-------------------- 

Wie kann man die Beträge nach dem Ersetzen NICHT aufrunden?

+1

Was ist der Datentyp der Spalte 'vl1'? Siehst du, dass die Ausgabe für 'vl2' auch Komma liefert? –

+0

vlr_contab_item (vl1) type ist float. –

+0

Niemals Float verwenden, es ist ein ungenauer Datentyp und es wird abgerundet. – HLGEM

Antwort

0
DECLARE @amount AS MONEY 

SET @amount = 1200.5566 

SELECT FORMAT(@amount, 'N', 'en-us') AS 'Number Format' 
      ,FORMAT(@amount, 'G', 'en-us') AS 'General Format' 
      ,FORMAT(@amount, 'C', 'en-us') AS 'Currency Format' 
      ,FORMAT(@amount, 'C3', 'en-us') AS 'Currency Format' 
      ,FORMAT(@amount ,'F', 'de-DE') AS 'Currency Format' 

FORMAT (Transact-SQL)

Standard Numeric Format Strings

+0

Es funktioniert! Das ist sehr hilfreich! Vielen Dank! –

Verwandte Themen