[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Function that reduces the number of digits to the
On Tue, 2020-06-23 at 14:29 +0000, Roger L Costello costello@xxxxxxxxx wrote: > > I want a function that reduces the number of digits to the right of > the decimal point in $num according to the value specified in > $desired-number-of-digits-after-decimal-point Make a variable, $pattern, " <xsl:sequence select=" let $pattern := '(\.\d{' || $ndigits || '})\d+$' return replace($input, $pattern, '$1') " /> may or may not be clearer - using a variable $pattern simplifies constructructing regular expressions containing braces. This will work in XSLT 3and XQuery, but doesn't cope well with zero, nor with input ending in . So one could write, <xsl:sequence select=" if ($ndigits le 0) then substring-before($input, '.') else let $pattern := '(\.\d{' || $ndigits || '})\d+$' return replace($input, $pattern, '$1') " /> This is more succinct than yours, but whether it's easier to follow depends on one's comfort with regular expressions and knowing that \d{3} will match exactly digits. One of the topics in the talk i'll be giving tomorrow at Markup UK relates to the rhetorical nature of the stylesheets we write. Liam -- Liam Quin, https://www.delightfulcomputing.com/ Available for XML/Document/Information Architecture/XSLT/ XSL/XQuery/Web/Text Processing/A11Y training, work & consulting. Barefoot Web-slave, antique illustrations: http://www.fromoldbooks.org
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|