HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - Stellen hinter dem Komma Abfragen und ändern.

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Stellen hinter dem Komma Abfragen und ändern.

 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   XSL, XSLT, XPath, XLink, XPointer, X...
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
Beckers



Anmeldungsdatum: 16.08.2011
Beiträge: 2

BeitragVerfasst am: 14.10.2011 10:40:34    Titel: Stellen hinter dem Komma Abfragen und ändern. Antworten mit Zitat

Hallo, ich habe ein Rundungsproblem was bei mir ziemlich eilt und ich habe leider noch keine (oder nur sehr wenig) Ahnung von XSLT und hoffe deswegen das ihr mir helfen könnt.

ich würde gerne aus einer Zahl *.**5
ein *.**6 machen.

könnt ihr mir dabei helfen?
Gibt es sowas wie wildcards oder kann ich die dritte stelle hinter dem Komma Abfragen?

was ich gerne hätte ist:
Code:
If price = *.**5 then price = *.**6

Klingt ziemlich blöd und dreckig aber das würde mir sehr helfen.

Aber ich will auch noch mal mein ganzes Problem erklären, vielleicht ist es ja bekannt.
Erst einmal, meiner meinung ist es total unlogisch, aber das mag auch an mir liegen Very Happy

Ich benutze eine XML und XSLT um ein InDesign Dokument zu befüllen.
Mein Problem ist dabei ein Rundungsproblem
der Code für die Stelle:
Code:

<xsl:variable name="gerundet" select='format-number($grundpreis, "0.00")' />
               <!-- wie soll die Zahl ausgegeben werden; mit 0,90 oder ,90-->
               <xsl:value-of select='$gerundet'/>

Wenn $grundpreis = 4.975 ist und ich die Dateien transformiere, dann gibt er mir
Code:
<price_div>1 kg = 4.98</price_div>

was richtig ist, allerdings befüllt er mein Indesign Dokument mit:

Code:
<price_div>1 kg = 4.97</price_div>

Was für mich kein Sinn ergibt.

Wenn $grundpreis allerdings = 4.976 ist, rundet er in der transformation auch richtig auf 4.98 und im Indesign Dokument auch.

Also muss ich davon ausgehen das ein Transformationsfehler vorliegt.
Und jetzt würde ich einfach gerne so etwas haben wie:
Code:
 
<xsl:choose>
             <!--<xsl:with-param name="grundpreis" select="parent::node()/grundpreis"/>-->
             <xsl:when test="parent::node()/grundpreis='*.**5'">
         <xsl:text>*.**6</xsl:text>
      </xsl:when>
      <xsl:otherwise>
      <xsl:variable name="gerundet" select='format-number($grundpreis, "0.00")' />
               <!-- wie soll die Zahl ausgegeben werden; mit 0,90 oder ,90-->
               <xsl:value-of select='$gerundet'/>
      </xsl:otherwise>
   </xsl:choose>

Also die Sternchen als Wildcards

Bin für jede Hilfe Dankbar!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   XSL, XSLT, XPath, XLink, XPointer, X...
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.