Tina: Dezimalzahlen kommabündig ausrichten (z,B. in table)

Hallo,

ich will einige Dezimalzahlen mit zwei Nachkommastellen untereinander so ausgeben, dass das Komma bündig ist (Wie z.B. der Dezimaltabulator in Word).

Habe leider keine Idee, wie ich das bewerkstelligen kann, beim googlen ist mir auch nichts passendes über den Weg gelaufen.

Hat jemand ne Idee und könnte mir helfen.

Vielen Dank Tina

  1. Zerofill auf zwei Nachkommastellen, rechtsbündig ausrichten: fertig.

    Auch bei Proportionalschriften sind die Ziffern 0 bis 9 idR. dicktengleich.

    1. Zerofill auf zwei Nachkommastellen, rechtsbündig ausrichten: fertig.

      Auch bei Proportionalschriften sind die Ziffern 0 bis 9 idR. dicktengleich.

      die Breiten sind je nach Schrift leider nicht gleich für alle Ziffern (z.B. Arial) Ist zwar bei nur zwei Stellen nicht viel, schaut aber doch doof aus.

      Gibt es sont noch eine Lösung?
      Danke Tina

      1. Hallo,

        Auch bei Proportionalschriften sind die Ziffern 0 bis 9 idR. dicktengleich.

        in der Regel ja, aber nicht bei allen.

        die Breiten sind je nach Schrift leider nicht gleich für alle Ziffern (z.B. Arial)

        Gerade bei Arial *sind* aber alle Ziffern gleich breit (bzw. beanspruchen gleich viel Platz):

        Gibt es sont noch eine Lösung?

        Ja. Serverseitig nachhelfen. Am Dezimalpunkt auftrennen und zwei Elemente draus machen. Nicht schön, aber ...

        Ciao,
         Martin

        --
        Ja, ja ... E.T. wusste schon, warum er wieder nach Hause wollte.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Gerade bei Arial *sind* aber alle Ziffern gleich breit (bzw. beanspruchen gleich viel Platz):

          Leider nicht ganz.
          probiers doch mal mit zehn 8en und zehn 1en, dann merkt mans (zumindest in meinem OpenOffice ;-)

          Tina

          1. Hi,

            Gerade bei Arial *sind* aber alle Ziffern gleich breit (bzw. beanspruchen gleich viel Platz):
            Leider nicht ganz.

            dann hat dein Font-Mapper ein Problem.

            probiers doch mal mit zehn 8en und zehn 1en, dann merkt mans (zumindest in meinem OpenOffice ;-)

            Dürfen's auch 20 von jeder Sorte sein? ;-)
            Zum Vergleich in Arial, Tahoma und Verdana, was zumindest für Windows-Nutzer vermutlich die meistverwendeten Proportionalschriften sein dürften, zumindest wenn man Serifenschriften ausschließt. In Times New Roman passt's übrigens auch, hab ich hinterher noch ausprobiert.

            Also ich finde, die liegen alle sauber in einer Flucht.

            Bei der von Matthias reklamierten Georgia sind die Ziffern aber tatsächlich unterschiedlich breit, bei manchen typischen Schmuckschriften ebenfalls. In Comic Sans übrigens auch.

            Ciao,
             Martin

            --
            There are 10 types of people in the world: Those who understand the binary system, and those who don't.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. @@Der Martin:

              nuqneH

              […] bei manchen typischen Schmuckschriften ebenfalls. In Comic Sans übrigens auch.

              Hehe, wenn es um Schriften geht, wirf doch bitte Comic Sans nicht mit diesen Topf! ;-)

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Om nah hoo pez nyeetz, Gunnar Bittersmann!

                Hehe, wenn es um Schriften geht, wirf doch bitte Comic Sans nicht mit diesen Topf! ;-)

                das hatten wir doch schon.

                Matthias

                --
                http://www.billiger-im-urlaub.de/kreis_sw.gif
                1. das hatten wir doch schon.

                  Damit hat er sich aber für alle Zeit als Troll geoutet :D

                  1. Hi,

                    das hatten wir doch schon.
                    Damit hat er sich aber für alle Zeit als Troll geoutet :D

                    lieber ein Troll, als gegen die eigene Überzeugung auszusagen. :-)

                    Ciao,
                     Martin

                    --
                    Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
                      (wahsaga)
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        2. [latex]Mae  govannen![/latex]

          Auch bei Proportionalschriften sind die Ziffern 0 bis 9 idR. dicktengleich.

          in der Regel ja, aber nicht bei allen.

          Ich bin der Meinung, daß man, wenn man auf *genaue* Ausrichtung Wert legt, eine monospace-Schriftfamilie grundsätzlich vorgeben sollte. (Mindestens als generische Angabe)

          Cü,

          Kai

          --
          ~~~ ken SENT ME ~~~
          Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
          in Richtung "Mess up the Web".(suit)
          SelfHTML-Forum-Stylesheet
          1. Ich bin der Meinung, daß man, wenn man auf *genaue* Ausrichtung Wert legt, eine monospace-Schriftfamilie grundsätzlich vorgeben sollte. (Mindestens als generische Angabe)

            dann schauen halt die anderen Spalten, die TExt enthalen nicht gut aus .-(
            Und Fonts mischen finde ich noch hässlicher.

            Wie lösen denn andere das Problem?

            Tina

            1. Hello,

              Ich bin der Meinung, daß man, wenn man auf *genaue* Ausrichtung Wert legt, eine monospace-Schriftfamilie grundsätzlich vorgeben sollte. (Mindestens als generische Angabe)

              dann schauen halt die anderen Spalten, die TExt enthalen nicht gut aus .-(
              Und Fonts mischen finde ich noch hässlicher.

              Wie lösen denn andere das Problem?

              Da kannst Du nur eigene Behälter für Vor- und Nachkommaziffern benutzten oder eigene Spalten. Diese oder in diesen kannst du dann rechts- und linksbündig anordnen. Das Komma steckst Du in den Nachkommabehälter.

              Das ganze hat dann nur den Nachteil, dass es nicht mehr barrierefrei ist.

              HTML und CSS haben noch soviele Schwachstellen *stöhn*

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. @@Tom:

                nuqneH

                Da kannst Du nur eigene Behälter für Vor- und Nachkommaziffern benutzten oder eigene Spalten. […] Das ganze hat dann nur den Nachteil, dass es nicht mehr barrierefrei ist.

                Die erste Variante schon. Ich wüsste jedenfalls nicht, was an
                  <td><span class="vorkomma">42</span>.<span class="nachkomma">0815</span></td>
                nicht barrierefrei sein sollte.

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
                1. Hello Gunnar,

                  Da kannst Du nur eigene Behälter für Vor- und Nachkommaziffern benutzten oder eigene Spalten. […] Das ganze hat dann nur den Nachteil, dass es nicht mehr barrierefrei ist.

                  Die erste Variante schon. Ich wüsste jedenfalls nicht, was an
                    <td><span class="vorkomma">42</span>.<span class="nachkomma">0815</span></td>
                  nicht barrierefrei sein sollte.

                  Ich krieg es nicht hin, die inline-Elemente zu positionieren und dann in ihnen auch passend zu positionieren. Da fehlt mir die CSS-Erfahrung.

                  Wenn Du es vielleicht kurz zeigen könntest, wie man das mit einer Liste von Zahelen machn müsste?
                  Das wäre sehr nett.

                  Liebe Grüße aus dem schönen Oberharz

                  Tom vom Berg

                  --
                   ☻_
                  /▌
                  / \ Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
                  1. @@Tom:

                    nuqneH

                    Ich krieg es nicht hin, die inline-Elemente zu positionieren und dann in ihnen auch passend zu positionieren.

                    Wenn man die maximale Anzahl der Vor- und Nachkommastellen kennt, kann man Breitenangaben machen:

                    .vorkomma  { display: inline-block; text-align: right; width: 3em }  
                    .nachkomma { display: inline-block; text-align: left;  width: 1em }
                    

                    Qapla'

                    --
                    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                    (Mark Twain)
                    1. Hello,

                      Ich krieg es nicht hin, die inline-Elemente zu positionieren und dann in ihnen auch passend zu positionieren.

                      Wenn man die maximale Anzahl der Vor- und Nachkommastellen kennt, kann man Breitenangaben machen:

                      .vorkomma  { display: inline-block; text-align: right; width: 3em }

                      .nachkomma { display: inline-block; text-align: left;  width: 1em }

                        
                      Okay. per CSS als Blockelement umformen.  
                      Dann bleibt es auf HTML-Ebene auch bestimmt ein inline-Element und sltellt keine Barriere dar?  
                      Stimmt das?  
                        
                      Ich habe leider keinen Screenreader, um es auszuprobieren.  
                        
                        
                        
                        
                        
                      Liebe Grüße aus dem schönen Oberharz  
                        
                        
                      Tom vom Berg  
                      ![](http://selfhtml.bitworks.de/Virencheck.gif)  
                        
                      
                      -- 
                       ☻\_  
                      /▌  
                      / \ Nur selber lernen macht schlau  
                      <http://bergpost.annerschbarrich.de>
                      
                      1. Hi,

                        .vorkomma  { display: inline-block; text-align: right; width: 3em }

                        .nachkomma { display: inline-block; text-align: left;  width: 1em }

                        
                        > Okay. per CSS als Blockelement umformen.  
                        > Dann bleibt es auf HTML-Ebene auch bestimmt ein inline-Element und sltellt keine Barriere dar?  
                        > Stimmt das?  
                          
                        Sieht so aus.  
                          
                        Ein anderer Vorschlag ins Blaue reingedacht:  
                        man könnte per Javascript die span-Elemente einfügen, so hat man zumindest beim Editieren nicht die Notwendigkeit, da tätig zu werden.  
                          
                        Beispiel:  
                        ~~~html
                        <!DOCTYPE html>  
                        <html>  
                        	<head>  
                        		<meta charset='UTF-8' />  
                        		<title>Tabelle: Kommazahlen komma-bündig ausrichten</title>  
                        		<script src="http://code.jquery.com/jquery-1.4.4.js" type="text/javascript"></script>  
                        		<style type="text/css">  
                        			td, th {  
                        				border: 1px solid black;  
                        				text-align:right;  
                        			}  
                        			.digit {  
                        				width: 0.6em;  
                        				display: inline-block;  
                        				text-align:left;  
                        			}  
                        		</style>  
                          
                        	</head>  
                        	<body>  
                        		<table>  
                        			<thead>  
                        				<tr>  
                        					<th>Spalte 1</th>  
                        					<th class='numeric'>Spalte 2</th>  
                        					<th class='numeric'>Spalte 3</th>  
                        				</tr>  
                        			</thead>  
                        			<tbody>  
                        				<tr>  
                        					<td>Zeile 0</td>  
                        					<td>10,1</td>  
                        					<td>0,2</td>  
                        				</tr>  
                        				<tr>  
                        					<td>Zeile 1</td>  
                        					<td>0,12</td>  
                        					<td>0,2</td>  
                        				</tr>  
                        				<tr>  
                        					<td>Zeile 2</td>  
                        					<td>0,3</td>  
                        					<td>12,36</td>  
                        				</tr>  
                        				<tr>  
                        					<td>Zeile 3</td>  
                        					<td>0,45</td>  
                        					<td>8,45</td>  
                        				</tr>  
                        				<tr>  
                        					<td>Zeile 4</td>  
                        					<td>0,1</td>  
                        					<td>123,1</td>  
                        				</tr>  
                        				<tr>  
                        					<td>Zeile 5</td>  
                        					<td>12</td>  
                        					<td>0.2</td>  
                        				</tr>  
                        			</tbody>  
                        		</table>  
                        	</body>  
                        	<script type="text/javascript">  
                        		$(function() {  
                        			var after_dec_digits = 2;  
                        			// get all numeric columns  
                        			$('th.numeric').each(function() {  
                        				var columnIndex = this.cellIndex;  
                        				$(this).parent().parent().parent() // table-element  
                        					.find('td:nth-child(' + (columnIndex+1) + ')')  
                        					.each(function(rowIndex, node) {  
                        						var value = Number($(node).text().replace(/,/, '.')).toFixed(after_dec_digits);  
                        						var digits = value.split("");  
                        						var length = digits.length;  
                        						var new_text = '';  
                        						//alert("rowIndex=" + rowIndex + ", val=" + $(node).text() + ", l=" + digits.length);  
                        						for (var i = 0; i < length; ++i) {  
                        							if (i == length - after_dec_digits - 1) { // no 'digit' class for the decimal point  
                        								// for ',' instead of '.', exchange value here  
                        								new_text += digits[i];  
                        							} else {  
                        								new_text += '<span class="digit">' + digits[i] + '</span>';  
                        							}  
                        						}  
                        						$(node).html(new_text);  
                        					});  
                        			});  
                        		});  
                        	</script>  
                        </html>  
                        
                        

                        Hier trenne ich die Zahlen pro Ziffer. So kann ich auch mit nicht-dicktengleichen Schriftarten eine bündige Darstellung der Ziffern gewährleisten.

                        Bis die Tage,
                        Matti

            2. Hello,

              Wie lösen denn andere das Problem?

              Bei Zahlenspalten sollen doch aber nicht nur die Kommata untereinanderstehen, sondern auch die Ziffernspalten. Das rührt doch daher, dass man bei einer ausgerichteten Darstellung die Zahlen besser addieren, subtrahieren, etc. kann.

              Also wäre dicktengelich doch die richtige Wahl.

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
        3. Hello,

          mach das nochmal z.B. mit der Schriftart Architecture. ;-)

          00000
          11111
          22222
          33333
          44444
          55555
          66666
          77777
          88888
          99999

          Schrifttyp kann ich hier ja leider nicht einstellen.  Deshalb auch nochmal als Bild

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
  2. Hi,

    ich will einige Dezimalzahlen mit zwei Nachkommastellen untereinander so ausgeben, dass das Komma bündig ist (Wie z.B. der Dezimaltabulator in Word).
    Habe leider keine Idee, wie ich das bewerkstelligen kann, beim googlen ist mir auch nichts passendes über den Weg gelaufen.

    wenn die Zahlen wirklich alle zwei Nachkommastellen haben (und das wäre ja im Sinne einer einheitlichen Darstellung wünschenswert), erfüllt eine rechtsbündige Ausrichtung denselben Zweck. Oder übersehe ich etwas?

    Ciao,
     Martin

    --
    F: Wer waren die ersten modernen Politiker?
    A: Die Heiligen drei Könige. Sie legten die Arbeit nieder, zogen teure Klamotten an und gingen auf Reisen.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hello,

      ich will einige Dezimalzahlen mit zwei Nachkommastellen untereinander so ausgeben, dass das Komma bündig ist (Wie z.B. der Dezimaltabulator in Word).
      Habe leider keine Idee, wie ich das bewerkstelligen kann, beim googlen ist mir auch nichts passendes über den Weg gelaufen.

      wenn die Zahlen wirklich alle zwei Nachkommastellen haben (und das wäre ja im Sinne einer einheitlichen Darstellung wünschenswert), erfüllt eine rechtsbündige Ausrichtung denselben Zweck. Oder übersehe ich etwas?

      Ja, den Schrifttyp. Das klappt nur bei diktengleicher Darstellung der Ziffern. Einige Proportionalschriften haben doch extrem unterschiedliche Ziffernbreiten...

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hi,

        wenn die Zahlen wirklich alle zwei Nachkommastellen haben (und das wäre ja im Sinne einer einheitlichen Darstellung wünschenswert), erfüllt eine rechtsbündige Ausrichtung denselben Zweck. Oder übersehe ich etwas?
        Ja, den Schrifttyp. Das klappt nur bei diktengleicher Darstellung der Ziffern. Einige Proportionalschriften haben doch extrem unterschiedliche Ziffernbreiten...

        ja, aber nach meinem bisherigen Eindruck ist das eher die Ausnahme.

        Ciao,
         Martin

        --
        In der Theorie stimmen Theorie und Praxis genau überein.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Om nah hoo pez nyeetz, Der Martin!

          ja, aber nach meinem bisherigen Eindruck ist das eher die Ausnahme.

          die beliebte Georgia zum Beispiel. Gefühlt ist das die Wordpress-Standard-Schriftart.

          Matthias

          --
          http://www.billiger-im-urlaub.de/kreis_sw.gif
  3. Hi,

    ich will einige Dezimalzahlen mit zwei Nachkommastellen untereinander so ausgeben, dass das Komma bündig ist (Wie z.B. der Dezimaltabulator in Word).

    Habe leider keine Idee, wie ich das bewerkstelligen kann, beim googlen ist mir auch nichts passendes über den Weg gelaufen.

    Theorie:

    In CSS 2.0 gab es bei text-align noch den Wert <string> (ist bei CSS 2.1 aber weg).
    Oder im HTML für td/th bei align den Wert char, und dazu das char-Attribut.

    Ich hab keine Ahnung, wie weit das von welchen Browsern unterstützt wird. Die CSS-Variante vermutlich nicht sehr, sonst wär sie in CSS 2.1 dringeblieben, allerdings ist sie im Draft für CSS Text Level 3 wieder drin ...

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  4. Danke f+r die viele Hilfe.

    Ich nehme jetzt ne Proportionalschrift, in der die Ziffern dickengleich sind und richte rechts aus (das Argument von Tom zieht absolut, dass auch die Ziffenr untereinander stehen sollten!).

    Warum beim meinem OO bei Arial die Ziffern nicht dickengleich sind und bei Martin doch ist mir schleierhaft.
    Macht aber nix, Verdana verhält sich wie gewünscht und sollte auch gut verfügbar sein.

    schönen Abend
    Tina

    1. Hallo Tina,

      Warum beim meinem OO bei Arial die Ziffern nicht dickengleich sind und bei Martin doch ist mir schleierhaft.

      mir auch - ich habe aber einen Verdacht. Verwendest du Linux?
      Mir ist nämlich schon mehrmals aufgefallen, dass Truetype-Schriften unter Linux teilweise etwas andere Proportionen haben als ihre gleichnamigen Pendants unter Windows. Insbesondere hat die Arial aus dem Truetype-Paket von Linux die Eigenschaft, die du beschreibst: Die Ziffern sind im Gegensatz zu Windows nicht gleich breit.

      So long,
       Martin

      --
      Die letzten Worte des Privatdetektivs:
      Jetzt wird es mir klar: SIE sind der Mörder!
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hello,

        mir auch - ich habe aber einen Verdacht. Verwendest du Linux?
        Mir ist nämlich schon mehrmals aufgefallen, dass Truetype-Schriften unter Linux teilweise etwas andere Proportionen haben als ihre gleichnamigen Pendants unter Windows. Insbesondere hat die Arial aus dem Truetype-Paket von Linux die Eigenschaft, die du beschreibst: Die Ziffern sind im Gegensatz zu Windows nicht gleich breit.

        Außerdem haben sie auch oft ein anderes Kerning (oder überhaupt eins!), was natürlich zum Tragen kommt, wenn man unterschiedliche Ziffern anreiht.

        http://de.wikipedia.org/wiki/Unterschneidung_(Typografie)

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Moin!

        mir auch - ich habe aber einen Verdacht. Verwendest du Linux?
        Mir ist nämlich schon mehrmals aufgefallen, dass Truetype-Schriften unter Linux teilweise etwas andere Proportionen haben als ihre gleichnamigen Pendants unter Windows. Insbesondere hat die Arial aus dem Truetype-Paket von Linux die Eigenschaft, die du beschreibst: Die Ziffern sind im Gegensatz zu Windows nicht gleich breit.

        Stimmt. Unter Linux gefaellt mir das Internet meist etwas besser.

        --
        Vergesst Chuck Norris.
        Sponge Bob kann unter Wasser grillen!
      3. Tach,

        Insbesondere hat die Arial aus dem Truetype-Paket von Linux die Eigenschaft

        ich glaube rms würde hinten über fallen, wenn er sowas lesen würde :-) Die in den Distributionen (nicht in Linux) verwendete Arial ist das Original von Microsoft: http://en.wikipedia.org/wiki/Arial#Proprietary_font.

        mfg
        Woodfighter

        1. Hallo,

          Insbesondere hat die Arial aus dem Truetype-Paket von Linux die Eigenschaft
          ich glaube rms würde hinten über fallen, wenn er sowas lesen würde :-)

          keine Ahnung, wer "rms" ist; ich kenn's nur als Abkürzung für "Root Mean Square", also Effektivwert.

          Die in den Distributionen (nicht in Linux) verwendete Arial ist das Original von Microsoft: http://en.wikipedia.org/wiki/Arial#Proprietary_font.

          Hmm. Und doch hat dieselbe Schrift (oder zumindest die identisch benannte Schrift) unter Windows und Linux-Desktops offensichtlich eine unterschiedliche Metrik. Denn die geschilderte Beobachtung bleibt bestehen.

          Ciao,
           Martin

          --
          Drei Sachen vergesse ich immer wieder: Telefonnummern, Geburtstage und ... äääh ...
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Hi,

            keine Ahnung, wer "rms" ist;

            Richard Stallmann, der Initiator des GNU-Projekts.

            Bis die Tage,
            Matti

            1. Hallo,

              keine Ahnung, wer "rms" ist;
              Richard Stallmann, der Initiator des GNU-Projekts.

              danke, von dem hatte ich noch nie gehört.

              Ciao,
               Martin

              --
              Husten kann böse Folgen haben.
              Besonders im Kleiderschrank.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(