Murcks Geschrieben 2. August 2006 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darth_Zeus Geschrieben 2. August 2006 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Murcks Geschrieben 2. August 2006 Autor Teilen 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zirri Geschrieben 2. August 2006 Teilen Geschrieben 2. August 2006 wie Darth_Zeus schon schreibt, ohne angabe der DB schon schwer, aber schau mal nach ROUND(zahl, NKS) gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Murcks Geschrieben 3. August 2006 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 3. August 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 3. August 2006 Teilen Geschrieben 3. August 2006 Wenn du nicht runden willst, dann muesstest das wohl ueber ein floor(@value*10)/10 machen. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Murcks Geschrieben 3. August 2006 Autor Teilen 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] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.