Murcks Geschrieben 2. August 2006 Geschrieben 2. August 2006 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.
Darth_Zeus Geschrieben 2. August 2006 Geschrieben 2. August 2006 Kommt darauf an, welche DB. Bei MaxDB geht das mit DEC(1) bei anderen nicht. Generell hilft dir DAS DA vielleicht weiter.
Murcks Geschrieben 2. August 2006 Autor Geschrieben 2. August 2006 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!
zirri Geschrieben 2. August 2006 Geschrieben 2. August 2006 wie Darth_Zeus schon schreibt, ohne angabe der DB schon schwer, aber schau mal nach ROUND(zahl, NKS) gruss
Murcks Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 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.
Goos Geschrieben 3. August 2006 Geschrieben 3. August 2006 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
Goos Geschrieben 3. August 2006 Geschrieben 3. August 2006 Wenn du nicht runden willst, dann muesstest das wohl ueber ein floor(@value*10)/10 machen. Goos
Murcks Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 @ 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]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden