Sto cercando di ottenere il valore di un numero a 2 dec posti dal mio xml.XSL - problema di arrotondamento/numero di formato
XML: <Quantity>0.0050</Quantity>
XSL: <xsl:value-of select="format-number($quantity, '####0.00')" />
Tuttavia XSL sembra avere un problema con questo valore e uscite 0.00
in una zona della pagina e 0.01
nell'altra. Naturalmente in questa situazione è favorevole avere l'output 0.01
in tutte le aree.
Un'altra area ha il valore 4.221
eppure l'XSL sta emettendo 4.23
.
Mi rendo conto che format-number
come metodo converte un numero in una stringa.
Non so come risolvere questo problema.
EDIT:
Ok, dopo un po 'di gingillarsi ho scoperto che questo funziona:
<xsl:value-of select='format-number(round(100*$quantity) div 100 ,"##0.00")' />
Via questa website
come questo ragazzo cita banchieri XSL usi' arrotondamento per arrotondare ai numeri pari anziché a quelli più grandi.
La soluzione non sembra elegante e significa aggiungere una tonnellata di funzioni extra a un file XSL già ingombrante e complicato. Sicuramente mi manca qualcosa?
il comportamento incoerente che stai descrivendo è strano. Per favore pubblica il tuo foglio di stile. –