Discussion:
Was einfaches ;): Immer 2 Nachkommastellen anzeigen
(zu alt für eine Antwort)
Jan Bockler
2005-08-29 12:36:20 UTC
Permalink
Hallo NG!

Wie kann ich eine Zahl immer mit 2 Nachkommastellen (ggf. gerundet auf 2.
Stelle) ausgeben, z.B. 0,00 oder 10,00 oder 1,34? Ich hab schon wer weiß wie
gecasted und converted, aber irgendwie will er (MSSQL 2000) nicht so wie ich
:/.

Gruß, Jan
Christa Kurschat
2005-08-29 12:58:40 UTC
Permalink
Hallo Jan,
Post by Jan Bockler
Hallo NG!
Wie kann ich eine Zahl immer mit 2 Nachkommastellen (ggf.
gerundet auf 2. Stelle) ausgeben, z.B. 0,00 oder 10,00 oder
1,34? Ich hab schon wer weiß wie gecasted und converted, aber
irgendwie will er (MSSQL 2000) nicht so wie ich :/.
das sollte eigentlich Sache des Clients sein.
Aber ein "select round(DeinFeld,2) from Tabelle", ev. ein Cast nach Dezimal
sollte es tun.
Alles weitere ist die Anzeigeproblematik des Clients (auch der QA ist ein
Client).

Sonnst beschreibe doch mal, was Du bisher gemacht ahst und was wo nicht
geht.

Gruß
C
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8hrista
Jan Bockler
2005-08-29 13:23:47 UTC
Permalink
Hallo Christa!

Ich habe bisher folgendes versucht:


SELECT CONVERT(decimal(10,2),100)
SELECT CAST(100 as decimal(10,2))
SELECT CAST(CONVERT(DECIMAL(10,2),100) as DECIMAL(10,2))
usw.

Er gibt mit aber immer nur 100 aus. Ohne Nachkommastellen. Mit round gehts
auch nicht.

Gruß, Jan
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hallo NG!
Wie kann ich eine Zahl immer mit 2 Nachkommastellen (ggf.
gerundet auf 2. Stelle) ausgeben, z.B. 0,00 oder 10,00 oder
1,34? Ich hab schon wer weiß wie gecasted und converted, aber
irgendwie will er (MSSQL 2000) nicht so wie ich :/.
das sollte eigentlich Sache des Clients sein.
Aber ein "select round(DeinFeld,2) from Tabelle", ev. ein Cast nach Dezimal
sollte es tun.
Alles weitere ist die Anzeigeproblematik des Clients (auch der QA ist ein
Client).
Sonnst beschreibe doch mal, was Du bisher gemacht ahst und was wo nicht
geht.
Gruß
C
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8hrista
Christoph Muthmann
2005-08-29 13:31:15 UTC
Permalink
Post by Jan Bockler
Hallo Christa!
SELECT CONVERT(decimal(10,2),100)
SELECT CAST(100 as decimal(10,2))
SELECT CAST(CONVERT(DECIMAL(10,2),100) as DECIMAL(10,2))
usw.
Er gibt mit aber immer nur 100 aus. Ohne Nachkommastellen. Mit round
gehts auch nicht.
Wo? Im QA funktioniert es nämlich!


------------
100.00

(1 row(s) affected)


------------
100.00

(1 row(s) affected)


------------
100.00

(1 row(s) affected)

Einen schönen Tag noch,
Christoph
--
(Please post ALL replies to the newsgroup only unless indicated
otherwise)
Jan Bockler
2005-08-29 13:46:55 UTC
Permalink
Hi Chris!

Ich teste im InterDev 6.0.

Gruß, Jan
Post by Christoph Muthmann
Post by Jan Bockler
Hallo Christa!
SELECT CONVERT(decimal(10,2),100)
SELECT CAST(100 as decimal(10,2))
SELECT CAST(CONVERT(DECIMAL(10,2),100) as DECIMAL(10,2))
usw.
Er gibt mit aber immer nur 100 aus. Ohne Nachkommastellen. Mit round
gehts auch nicht.
Wo? Im QA funktioniert es nämlich!
------------
100.00
(1 row(s) affected)
------------
100.00
(1 row(s) affected)
------------
100.00
(1 row(s) affected)
Einen schönen Tag noch,
Christoph
--
(Please post ALL replies to the newsgroup only unless indicated
otherwise)
Christa Kurschat
2005-08-29 13:42:53 UTC
Permalink
Hallo Jan,
Post by Jan Bockler
Hallo Christa!
SELECT CONVERT(decimal(10,2),100)
SELECT CAST(100 as decimal(10,2))
SELECT CAST(CONVERT(DECIMAL(10,2),100) as DECIMAL(10,2))
usw.
Er gibt mit aber immer nur 100 aus. Ohne Nachkommastellen. Mit
round gehts auch nicht.
*Wo* wird das nicht richtig angezeigt?
Im QA?
"select cast(100 as decimal(5,2)), 100.00"
Ergebnis: 100,00 100,00 .
Schau mal in den Optionen unter Verbindungen nach, ob für die Anzeige die
Ländereinstellungen verwendet werden sollen.

Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Jan Bockler
2005-08-29 13:52:11 UTC
Permalink
Hi Christa!

Im InterDev 6.0 wirds nicht ausgegeben. Wenns jetzt natürlich ein Fehler vom
ID ist, dann beiß ich aber in sonstwas....

Gruß, Jan
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hallo Christa!
SELECT CONVERT(decimal(10,2),100)
SELECT CAST(100 as decimal(10,2))
SELECT CAST(CONVERT(DECIMAL(10,2),100) as DECIMAL(10,2))
usw.
Er gibt mit aber immer nur 100 aus. Ohne Nachkommastellen. Mit
round gehts auch nicht.
*Wo* wird das nicht richtig angezeigt?
Im QA?
"select cast(100 as decimal(5,2)), 100.00"
Ergebnis: 100,00 100,00 .
Schau mal in den Optionen unter Verbindungen nach, ob für die Anzeige die
Ländereinstellungen verwendet werden sollen.
Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Christa Kurschat
2005-08-29 14:03:53 UTC
Permalink
Hallo Jan,
Post by Jan Bockler
Hi Christa!
Im InterDev 6.0 wirds nicht ausgegeben. Wenns jetzt natürlich
ein Fehler vom ID ist, dann beiß ich aber in sonstwas....
das Teil kenne ich nicht.

Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Jan Bockler
2005-08-29 14:07:54 UTC
Permalink
Und ich kenn Dein QA nicht ;). Zumindest sagt mir jetzt QA nix. Außer
Quality Assurance. Und das meinste ja bestimmt nicht ;).
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hi Christa!
Im InterDev 6.0 wirds nicht ausgegeben. Wenns jetzt natürlich
ein Fehler vom ID ist, dann beiß ich aber in sonstwas....
das Teil kenne ich nicht.
Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Jan Bockler
2005-08-29 14:21:28 UTC
Permalink
Hat sich erledigt! Es war tatsächlich ein Ausgabefehler vom InterDev, wie
ich leider jetzt erst gemerkt hab :/. Trotzdem vielen Dank für die Hilfe!

Gruß, Jan
Post by Jan Bockler
Und ich kenn Dein QA nicht ;). Zumindest sagt mir jetzt QA nix. Außer
Quality Assurance. Und das meinste ja bestimmt nicht ;).
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hi Christa!
Im InterDev 6.0 wirds nicht ausgegeben. Wenns jetzt natürlich
ein Fehler vom ID ist, dann beiß ich aber in sonstwas....
das Teil kenne ich nicht.
Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
Elmar Boye
2005-08-29 19:37:22 UTC
Permalink
Hallo Jan,
Post by Jan Bockler
Hat sich erledigt! Es war tatsächlich ein Ausgabefehler vom InterDev,
Eher auch das nicht, sondern vielleicht Dein fehlendes Verständnis
von der Formatierung von Zahlen. Denn ein Dezimalwert wird wie
andere Werte nicht als Zeichenkette übertragen sondern binär.

Und die Platzierung eines Komma oder Dezimalpunkts hängt
von den Ländereinstellungen ab, was beim IIS (wegen VID)
nicht immer so eindeutig ist.
Für weitere Informationenen siehe u. a.:
http://support.microsoft.com/?kbid=306044
INFO: Behavior of Date/Time Format Differs When Accessed from Active Server Pages
und folge auch den dortigen Links.
Was dort für Datümmer beschrieben wird, gilt äquivalent
für formatierte Zahlen.

Gruss
Elmar
Jan Bockler
2005-08-30 13:25:52 UTC
Permalink
Hi Elmar!

Dann frage ich Dich, warum die Zahl unterschiedlich ausgegeben wird, wo doch
InterDev und die Clientanwendung auf dem gleichen Rechner laufen mit den
gleichen Ländereinstellungen. Und mit dem IIS mach ich doch gar nix.

Gruß, Jan
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hat sich erledigt! Es war tatsächlich ein Ausgabefehler vom InterDev,
Eher auch das nicht, sondern vielleicht Dein fehlendes Verständnis
von der Formatierung von Zahlen. Denn ein Dezimalwert wird wie
andere Werte nicht als Zeichenkette übertragen sondern binär.
Und die Platzierung eines Komma oder Dezimalpunkts hängt
von den Ländereinstellungen ab, was beim IIS (wegen VID)
nicht immer so eindeutig ist.
http://support.microsoft.com/?kbid=306044
INFO: Behavior of Date/Time Format Differs When Accessed from Active Server Pages
und folge auch den dortigen Links.
Was dort für Datümmer beschrieben wird, gilt äquivalent
für formatierte Zahlen.
Gruss
Elmar
Elmar Boye
2005-08-31 07:10:29 UTC
Permalink
Hallo Han,
Post by Jan Bockler
Dann frage ich Dich, warum die Zahl unterschiedlich ausgegeben wird,
wo doch InterDev und die Clientanwendung auf dem gleichen Rechner
laufen mit den gleichen Ländereinstellungen. Und mit dem IIS mach ich
doch gar nix.
Was machst Du denn damit, sprich: wo werden die Daten ausgegeben?

Gruss
Elmar
Jan Bockler
2005-08-31 09:21:55 UTC
Permalink
Hi Elmar!

Falsch ausgegeben werden die Daten im Ausgabefenster vom InterDev 6.0.
Richtig ausgegeben werden die Daten in einer selbst entwickelten
.Net-Anwendung.

Gruß,
Jan
Post by Elmar Boye
Hallo Han,
Post by Jan Bockler
Dann frage ich Dich, warum die Zahl unterschiedlich ausgegeben wird,
wo doch InterDev und die Clientanwendung auf dem gleichen Rechner
laufen mit den gleichen Ländereinstellungen. Und mit dem IIS mach ich
doch gar nix.
Was machst Du denn damit, sprich: wo werden die Daten ausgegeben?
Gruss
Elmar
Elmar Boye
2005-08-31 09:41:16 UTC
Permalink
Hallo Jan,
Post by Jan Bockler
Hi Elmar!
Falsch ausgegeben werden die Daten im Ausgabefenster vom InterDev 6.0.
Richtig ausgegeben werden die Daten in einer selbst entwickelten
.Net-Anwendung.
InterDev und .NET ist aber eine eher seltene Kombination!?!

Debug/Ausgabefenster formatieren allgemeinen nur minimalistisch.
Um in .NET immer zwei Nachkommastellen zu haben, verwenden
das Dezimalformat N2 oder ähnliches:
http://msdn.microsoft.com/library/DEU/cpguide/html/cpconStandardNumericFormatStrings.asp

Gruss
Elmar
Jan Bockler
2005-08-31 12:39:24 UTC
Permalink
Hi Elmar!

Mag sein, dass die Kombi selten wenn nicht sogar seltsam ist, aber wenn man
sich erstmal an was gewöhnt hat, dann neigt der normale Mensch dazu dabei zu
bleiben ;). Und in Net wollt ich Formatierungen nicht machen. Aber wie
gesagt, ich habs ja jetzt hingekriegt :o).

Gruß,
Jan
Post by Christa Kurschat
Hallo Jan,
Post by Jan Bockler
Hi Elmar!
Falsch ausgegeben werden die Daten im Ausgabefenster vom InterDev 6.0.
Richtig ausgegeben werden die Daten in einer selbst entwickelten
.Net-Anwendung.
InterDev und .NET ist aber eine eher seltene Kombination!?!
Debug/Ausgabefenster formatieren allgemeinen nur minimalistisch.
Um in .NET immer zwei Nachkommastellen zu haben, verwenden
http://msdn.microsoft.com/library/DEU/cpguide/html/cpconStandardNumericFormatStrings.asp
Gruss
Elmar
Robert Klemme
2005-08-29 14:34:35 UTC
Permalink
Post by Jan Bockler
Und ich kenn Dein QA nicht ;). Zumindest sagt mir jetzt QA nix. Außer
Quality Assurance. Und das meinste ja bestimmt nicht ;).
"Query Analyzer" - gehört zum Lieferumfang von SQL Server. :-)

Ciao

robert
Jan Bockler
2005-08-29 14:49:05 UTC
Permalink
Aso! Danke, wieder was gelernt ;). Mit dem QA hab ich aber noch nie was zu
tun gehabt. Auch wenn er beim MSSQL dabei ist :).

Gruß, Jan
Post by Robert Klemme
Post by Jan Bockler
Und ich kenn Dein QA nicht ;). Zumindest sagt mir jetzt QA nix. Außer
Quality Assurance. Und das meinste ja bestimmt nicht ;).
"Query Analyzer" - gehört zum Lieferumfang von SQL Server. :-)
Ciao
robert
Ralf Dietrich
2005-08-29 15:23:52 UTC
Permalink
Hi Jan
Post by Jan Bockler
Aso! Danke, wieder was gelernt ;). Mit dem QA hab ich aber noch nie
was zu tun gehabt. Auch wenn er beim MSSQL dabei ist :).
Gruß, Jan
da entgeht dir aber einiges
z.B: die Abfragepläne (um nur 1 was zu nennen)

Gruß Ralf
Jens Süßmeyer
2005-08-29 13:00:23 UTC
Permalink
SELECT CONVERT(decimal(20,2),234782637.293829382)

?
--
HTH, Jens Suessmeyer.

---
http://www.sqlserver2005.de
---
Post by Jan Bockler
Hallo NG!
Wie kann ich eine Zahl immer mit 2 Nachkommastellen (ggf. gerundet auf 2.
Stelle) ausgeben, z.B. 0,00 oder 10,00 oder 1,34? Ich hab schon wer weiß wie
gecasted und converted, aber irgendwie will er (MSSQL 2000) nicht so wie ich
:/.
Gruß, Jan
Jan Bockler
2005-08-29 13:31:25 UTC
Permalink
Hi Jens!

SELECT CONVERT(DECIMAL(10,2),100) geht aber z.B. nicht.

Gruß, Jan
Post by Jens Süßmeyer
SELECT CONVERT(decimal(20,2),234782637.293829382)
?
--
HTH, Jens Suessmeyer.
---
http://www.sqlserver2005.de
---
Post by Jan Bockler
Hallo NG!
Wie kann ich eine Zahl immer mit 2 Nachkommastellen (ggf. gerundet auf 2.
Stelle) ausgeben, z.B. 0,00 oder 10,00 oder 1,34? Ich hab schon wer weiß wie
gecasted und converted, aber irgendwie will er (MSSQL 2000) nicht so wie ich
:/.
Gruß, Jan
Loading...