2. August 200619 j Hallo! Ich mal wieder. Ich möchte gerne eine Kommazahl (z.B. 1,2000) mit nur einer Kommastelle (1,2) ausgeben. Gibt es da (wie in VB) einen "Format"-Befehl? Finde dazu leider nix.
2. August 200619 j Kommt darauf an, welche DB. Bei MaxDB geht das mit DEC(1) bei anderen nicht. Generell hilft dir DAS DA vielleicht weiter.
2. August 200619 j OK, wenn's keine explizite Funktion dazu gibt, dann werd ich das benutzen: [FONT="Courier New"][COLOR="Blue"]DECLARE[/COLOR] @Value [COLOR="blue"]AS DECIMAL[/COLOR] (10, 4) [COLOR="blue"]SET[/COLOR] @Value = 1.2000 [COLOR="blue"]PRINT[/COLOR] [COLOR="Red"]'Die Zahl (auf eine Stelle hinterm Komma): '[/COLOR] + [COLOR="Magenta"]STUFF[/COLOR]([COLOR="magenta"]CONVERT[/COLOR]( [COLOR="blue"]VARCHAR[/COLOR](10) , @Value), [COLOR="Magenta"]CHARINDEX[/COLOR]('.', @Value) + 2, 3, [COLOR="Red"]''[/COLOR])[/FONT] Naja, hatte gedacht, dass es vielleicht weniger "kompliziert" geht, trotzdem Danke!
2. August 200619 j wie Darth_Zeus schon schreibt, ohne angabe der DB schon schwer, aber schau mal nach ROUND(zahl, NKS) gruss
3. August 200619 j Hätte klappen können mit ROUND(), aber die Zahl soll nicht gerundet sondern einfach nur auf eine Nachkommastelle gekürzt werden. Wir reden hier übrigens vom SQL Server 2005.
3. August 200619 j Du kannst deine Variable natuerlich auch einfach einer anderen Variablen vom Typ DECIMAL (10, 1) zuweisen. Dann hast auch eine Nachkommastelle, der Rest wird gerundet. Ach und pass bei deinem DECIMAL (10, 4) auch auf, dass du keine groesseren Zahlen als 999999,9999 verwendest Goos
3. August 200619 j Wenn du nicht runden willst, dann muesstest das wohl ueber ein floor(@value*10)/10 machen. Goos
3. August 200619 j @ Goos Danke! Das funktioniert! [FONT="Courier New"]DECLARE @Message AS VARCHAR(100) DECLARE @Value AS DECIMAL(10, 4) SET @Value = 0.25 SET @Message = 'Auf alle Artikel ' + CONVERT(VARCHAR(10), FLOOR(@Value * 100)) + '% Rabatt!' PRINT @Message[/FONT]
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.